@sphereon/ssi-sdk.credential-validation 0.34.1-feature.merge.crypto.extensions.modules.39 → 0.34.1-fix.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1515,14 +1515,15 @@ __export(index_exports, {
1515
1515
  module.exports = __toCommonJS(index_exports);
1516
1516
 
1517
1517
  // src/agent/CredentialValidation.ts
1518
- var import_kmp_mdoc_core = require("@sphereon/kmp-mdoc-core");
1518
+ var import_kmp_mdoc_core = __toESM(require("@sphereon/kmp-mdoc-core"), 1);
1519
1519
  var import_ssi_types = require("@sphereon/ssi-types");
1520
1520
  var import_ajv_formats = __toESM(require("ajv-formats"), 1);
1521
1521
  var import__ = __toESM(require("ajv/dist/2020"), 1);
1522
1522
  var import_cross_fetch = __toESM(require("cross-fetch"), 1);
1523
1523
  var import_ssi_sdk = require("@sphereon/ssi-sdk.core");
1524
- var decodeFrom = import_kmp_mdoc_core.com.sphereon.kmp.decodeFrom;
1525
- var IssuerSignedCbor = import_kmp_mdoc_core.com.sphereon.mdoc.data.device.IssuerSignedCbor;
1524
+ var { com } = import_kmp_mdoc_core.default;
1525
+ var decodeFrom = import_kmp_mdoc_core.default.com.sphereon.kmp.decodeFrom;
1526
+ var IssuerSignedCbor = import_kmp_mdoc_core.default.com.sphereon.mdoc.data.device.IssuerSignedCbor;
1526
1527
  var credentialValidationMethods = [
1527
1528
  "cvVerifyCredential",
1528
1529
  "cvVerifySchema",
@@ -1657,7 +1658,7 @@ var CredentialValidation = class {
1657
1658
  }
1658
1659
  async cvVerifyMdoc(args, context) {
1659
1660
  const { credential } = args;
1660
- const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, import_kmp_mdoc_core.com.sphereon.kmp.Encoding.BASE64URL));
1661
+ const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL));
1661
1662
  const verification = await context.agent.mdocVerifyIssuerSigned({
1662
1663
  input: issuerSigned.toJson().issuerAuth
1663
1664
  }).catch((error) => {
@@ -1747,12 +1748,12 @@ var CredentialValidation = class {
1747
1748
  };
1748
1749
 
1749
1750
  // src/types/ICredentialValidation.ts
1750
- var SchemaValidation = /* @__PURE__ */ (function(SchemaValidation2) {
1751
+ var SchemaValidation = /* @__PURE__ */ function(SchemaValidation2) {
1751
1752
  SchemaValidation2["ALWAYS"] = "ALWAYS";
1752
1753
  SchemaValidation2["NEVER"] = "NEVER";
1753
1754
  SchemaValidation2["WHEN_PRESENT"] = "WHEN_PRESENT";
1754
1755
  return SchemaValidation2;
1755
- })({});
1756
+ }({});
1756
1757
 
1757
1758
  // src/index.ts
1758
1759
  var schema = require_plugin_schema();
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/CredentialValidation.ts","../src/types/ICredentialValidation.ts"],"sourcesContent":["{\n \"ICredentialValidation\": {\n \"components\": {\n \"schemas\": {\n \"VerifyCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n },\n \"fetchRemoteContexts\": {\n \"type\": \"boolean\"\n },\n \"policies\": {\n \"$ref\": \"#/components/schemas/VerificationPolicies\"\n }\n },\n \"required\": [\"credential\", \"fetchRemoteContexts\"],\n \"additionalProperties\": false\n },\n \"OriginalVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n }\n ]\n },\n \"W3CVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format. See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"credentialSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n }\n }\n ]\n },\n \"issuer\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIssuerId\"\n },\n {\n \"$ref\": \"#/components/schemas/IIssuer\"\n }\n ]\n },\n \"issuanceDate\": {\n \"type\": \"string\"\n },\n \"credentialSubject\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n ]\n },\n \"expirationDate\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"credentialStatus\": {\n \"$ref\": \"#/components/schemas/ICredentialStatus\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"credentialSubject\", \"issuanceDate\", \"issuer\", \"proof\", \"type\"]\n },\n \"IProof\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofType\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"created\": {\n \"type\": \"string\"\n },\n \"proofPurpose\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofPurpose\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"string\"\n },\n \"challenge\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"type\": \"string\"\n },\n \"proofValue\": {\n \"type\": \"string\"\n },\n \"jws\": {\n \"type\": \"string\"\n },\n \"jwt\": {\n \"type\": \"string\"\n },\n \"mso_mdoc\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"requiredRevealStatements\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"type\", \"created\", \"proofPurpose\", \"verificationMethod\"]\n },\n \"IProofType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519Signature2018\",\n \"Ed25519Signature2020\",\n \"EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256k1RecoverySignature2020\",\n \"JsonWebSignature2020\",\n \"RsaSignature2018\",\n \"GpgSignature2020\",\n \"JcsEd25519Signature2020\",\n \"BbsBlsSignatureProof2020\",\n \"BbsBlsBoundSignatureProof2020\",\n \"JwtProof2020\",\n \"SdJwtProof2024\",\n \"MsoMdocProof2024\"\n ]\n },\n \"IProofPurpose\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"assertionMethod\",\n \"authentication\",\n \"keyAgreement\",\n \"contactAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ]\n },\n \"ICredentialContextType\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"did\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchemaType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchema\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"],\n \"additionalProperties\": false\n },\n \"IIssuerId\": {\n \"type\": \"string\"\n },\n \"IIssuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"]\n },\n \"ICredentialStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\", \"type\"]\n },\n \"CompactJWT\": {\n \"type\": \"string\",\n \"description\": \"Represents a Json Web Token in compact form.\"\n },\n \"JwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"vc\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vc\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\"]\n },\n \"SdJwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"compactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"The compact sd jwt is the sd-jwt encoded as string. It is a normal JWT, with the disclosures and kb-jwt appended separated by ~\"\n },\n \"disclosures\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SdJwtDisclosure\"\n },\n \"description\": \"The disclosures included within the SD-JWT in both encoded and decoded format. The digests are also included, and allows the disclosures to be linked against the digests in the signed payload.\"\n },\n \"signedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtSignedVerifiableCredentialPayload\",\n \"description\": \"The signed payload is the payload of the sd-jwt that is actually signed, and that includes the `_sd` and `...` digests.\"\n },\n \"decodedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"The decoded payload is the payload when all `_sd` and `...` digests have been replaced by the actual values from the disclosures. This format could also be seen as the 'pretty` version of the SD JWT payload.\\n\\nThis is useful for displaying the contents of the SD JWT VC to the user, or for example for querying the contents of the SD JWT VC using a PEX presentation definition path.\"\n },\n \"kbJwt\": {\n \"type\": \"object\",\n \"properties\": {\n \"header\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtHeader\"\n },\n \"payload\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtPayload\"\n },\n \"compact\": {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n },\n \"required\": [\"header\", \"payload\"],\n \"additionalProperties\": false,\n \"description\": \"Key binding JWT\"\n }\n },\n \"required\": [\"compactSdJwtVc\", \"disclosures\", \"signedPayload\", \"decodedPayload\"],\n \"additionalProperties\": false,\n \"description\": \"The decoded SD JWT Verifiable Credential. This representation includes multiple representations of the same SD-JWT, and allows to fully process an SD-JWT, as well as create a presentation SD-JWT (minus the KB-JWT) by removing certain disclosures from the compact SD-JWT.\\n\\nThis representation is useful as it doesn't require a hasher implementation to match the different digests in the signed SD-JWT payload, with the different disclosures.\"\n },\n \"SdJwtDisclosure\": {\n \"type\": \"object\",\n \"properties\": {\n \"encoded\": {\n \"type\": \"string\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedDisclosure\"\n },\n \"digest\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"encoded\", \"decoded\", \"digest\"],\n \"additionalProperties\": false\n },\n \"SdJwtDecodedDisclosure\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"minItems\": 3,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 3\n },\n {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 2\n }\n ]\n },\n \"JsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n }\n ]\n },\n \"SdJwtSignedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"_sd_alg\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"required\": [\"iat\", \"iss\", \"vct\"],\n \"description\": \"The signed payload of an SD-JWT. Includes fields such as `_sd`, `...` and `_sd_alg`\"\n },\n \"SdJwtJsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"...\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"...\"],\n \"additionalProperties\": false\n }\n ]\n }\n }\n ]\n },\n \"SdJwtDecodedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vct\", \"iss\", \"iat\"],\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"description\": \"Decoded 'pretty' SD JWT Verifiable Credential. This representation has all the `_sd` properties removed, and includes the disclosures directly within the payload.\"\n },\n \"SdJwtVcKbJwtHeader\": {\n \"type\": \"object\",\n \"properties\": {\n \"typ\": {\n \"type\": \"string\",\n \"const\": \"kb+jwt\"\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"typ\", \"alg\"]\n },\n \"SdJwtVcKbJwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iat\": {\n \"type\": \"number\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"sd_hash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"iat\", \"aud\", \"nonce\", \"sd_hash\"],\n \"additionalProperties\": {}\n },\n \"MdocOid4vpIssuerSigned\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"MdocDocument\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DocumentCbor\"\n },\n \"com.sphereon.mdoc.data.device.DocumentCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"HasherSync\": {\n \"$comment\": \"(data: string | ArrayBuffer, alg: string) => Uint8Array\",\n \"type\": \"object\",\n \"properties\": {\n \"namedArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/ArrayBuffer\"\n }\n ]\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"data\", \"alg\"],\n \"additionalProperties\": false\n }\n }\n },\n \"ArrayBuffer\": {\n \"type\": \"object\",\n \"properties\": {\n \"byteLength\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"byteLength\"],\n \"additionalProperties\": false\n },\n \"VerificationPolicies\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemaValidation\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"credentialStatus\": {\n \"type\": \"boolean\"\n },\n \"expirationDate\": {\n \"type\": \"boolean\"\n },\n \"issuanceDate\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"expirationDate\", \"issuanceDate\"],\n \"additionalProperties\": false\n },\n \"SchemaValidation\": {\n \"type\": \"string\",\n \"enum\": [\"ALWAYS\", \"NEVER\", \"WHEN_PRESENT\"]\n },\n \"VerificationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"source\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiablePresentation\"\n }\n ]\n },\n \"subResults\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationSubResult\"\n }\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\", \"source\", \"subResults\"],\n \"additionalProperties\": false\n },\n \"WrappedVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n }\n ]\n },\n \"WrappedW3CVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n }\n ],\n \"description\": \"Original VC that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n }\n ],\n \"description\": \"In case of JWT credential it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this credential. Supported types are json-ld, jwt (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vc\", \"ldp_vc\", \"ldp\", \"jwt\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"OriginalType.JSONLD\": {\n \"type\": \"string\",\n \"const\": \"json-ld\"\n },\n \"OriginalType.JWT_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-encoded\"\n },\n \"OriginalType.JWT_DECODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-decoded\"\n },\n \"WrappedSdJwtVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VC that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT as the `decoded` property is used in e.g. PEX to check for path filters from fields. The full decoded credential can be found in the `credential` field.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"vc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"CompactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"OriginalType.SD_JWT_VC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-decoded\"\n },\n \"OriginalType.SD_JWT_VC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-encoded\"\n },\n \"WrappedMdocCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n }\n ],\n \"description\": \"Original IssuerSigned to Mdoc that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDecodedPayload\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/MdocDocument\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"MdocDecodedPayload\": {\n \"$ref\": \"#/components/schemas/Record<string,Record<string,(string|number|boolean)>>\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"Record<string,Record<string,(string|number|boolean)>>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/Record<string,(string|number|boolean)>\"\n }\n },\n \"Record<string,(string|number|boolean)>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": [\"string\", \"number\", \"boolean\"]\n }\n },\n \"OriginalType.MSO_MDOC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-decoded\"\n },\n \"OriginalType.MSO_MDOC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-encoded\"\n },\n \"WrappedVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocPresentation\"\n }\n ]\n },\n \"WrappedW3CVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n }\n ],\n \"description\": \"Original VP that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n }\n ],\n \"description\": \"In case of JWT VP it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation. Supported types are json-ld and jwt (decoded/encoded) and sd-jwt-vc (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vp\", \"ldp_vp\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/UniformVerifiablePresentation\",\n \"description\": \"Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"W3CVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n },\n \"verifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"proof\"]\n },\n \"PresentationSubmission\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Submission\"\n },\n \"definition_id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Definition\"\n },\n \"descriptor_map\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"description\": \"List of descriptors of how the claims are being mapped to presentation definition\"\n }\n },\n \"required\": [\"id\", \"definition_id\", \"descriptor_map\"],\n \"additionalProperties\": false,\n \"description\": \"It expresses how the inputs are presented as proofs to a Verifier.\"\n },\n \"Descriptor\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to identify the descriptor from Presentation Definition Input Descriptor it coresponds to.\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The path where the verifiable credential is located in the presentation submission json\"\n },\n \"path_nested\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"The Proof or JWT algorith that the proof is in\"\n }\n },\n \"required\": [\"id\", \"path\", \"format\"],\n \"additionalProperties\": false,\n \"description\": \"descriptor map laying out the structure of the presentation submission.\"\n },\n \"JwtDecodedVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"vp\": {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vp\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\", \"aud\", \"iat\"]\n },\n \"UniformVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"type\", \"verifiableCredential\"],\n \"additionalProperties\": false\n },\n \"WrappedSdJwtVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"vc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n \"minItems\": 1,\n \"maxItems\": 1,\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation. Will always be an array with a single SdJwtVerifiableCredential entry.\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"WrappedMdocPresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpMdocVpToken\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n },\n \"description\": \"Wrapped Mdocs belonging to the Presentation. There can be multiple documents in a single device response\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"MdocDeviceResponse\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DeviceResponseCbor\"\n },\n \"com.sphereon.mdoc.data.device.DeviceResponseCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"MdocOid4vpMdocVpToken\": {\n \"type\": \"string\"\n },\n \"VerificationSubResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\"],\n \"additionalProperties\": false\n },\n \"VerifyMdocCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"ValidateSchemaArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"validationPolicy\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifySDJWTCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifyW3CCredentialArgs\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"cvVerifyCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyMdoc\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyMdocCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySchema\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ValidateSchemaArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySDJWTCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifySDJWTCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyW3CCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyW3CCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { CredentialValidation, credentialValidationMethods } from './agent/CredentialValidation'\nexport * from './types/ICredentialValidation'\n","import { com } from '@sphereon/kmp-mdoc-core'\nimport { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'\nimport {\n CredentialMapper,\n ICoseKeyJson,\n ICredentialSchemaType,\n IVerifyResult,\n OriginalVerifiableCredential,\n WrappedVerifiableCredential,\n} from '@sphereon/ssi-types'\nimport { IAgentPlugin, IVerifyCredentialArgs, W3CVerifiableCredential as VeramoW3CVerifiableCredential } from '@veramo/core'\nimport addFormats from 'ajv-formats'\nimport Ajv2020 from 'ajv/dist/2020'\nimport fetch from 'cross-fetch'\nimport {\n CredentialVerificationError,\n ICredentialValidation,\n RequiredContext,\n schema,\n SchemaValidation,\n ValidateSchemaArgs,\n VerificationResult,\n VerificationSubResult,\n VerifyCredentialArgs,\n VerifyMdocCredentialArgs,\n VerifySDJWTCredentialArgs,\n} from '../index'\nimport IVerifySignatureResult = com.sphereon.crypto.generic.IVerifySignatureResult\nimport decodeFrom = com.sphereon.kmp.decodeFrom\nimport IssuerSignedCbor = com.sphereon.mdoc.data.device.IssuerSignedCbor\nimport { defaultHasher } from '@sphereon/ssi-sdk.core'\n\n// Exposing the methods here for any REST implementation\nexport const credentialValidationMethods: Array<string> = [\n 'cvVerifyCredential',\n 'cvVerifySchema',\n 'cvVerifyMdoc',\n 'cvVerifySDJWTCredential',\n 'cvVerifyW3CCredential',\n]\n\n/**\n * {@inheritDoc ICredentialValidation}\n */\nexport class CredentialValidation implements IAgentPlugin {\n readonly schema = schema.ICredentialValidation\n readonly methods: ICredentialValidation = {\n cvVerifyCredential: this.cvVerifyCredential.bind(this),\n cvVerifySchema: this.cvVerifySchema.bind(this),\n cvVerifyMdoc: this.cvVerifyMdoc.bind(this),\n cvVerifySDJWTCredential: this.cvVerifySDJWTCredential.bind(this),\n cvVerifyW3CCredential: this.cvVerifyW3CCredential.bind(this),\n }\n\n private detectSchemas(wrappedVC: WrappedVerifiableCredential): ICredentialSchemaType[] | undefined {\n if ('credential' in wrappedVC) {\n const { credential } = wrappedVC\n\n if ('credentialSchema' in credential) {\n const { credentialSchema } = credential\n\n if (Array.isArray(credentialSchema)) {\n return credentialSchema\n } else if (credentialSchema) {\n return [credentialSchema]\n }\n }\n }\n\n return undefined\n }\n\n private async cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, policies } = args\n // defaulting the schema validation to when_present\n const schemaResult = await this.cvVerifySchema({\n credential,\n validationPolicy: policies?.schemaValidation ?? SchemaValidation.WHEN_PRESENT,\n hasher,\n })\n if (!schemaResult.result) {\n return schemaResult\n }\n if (CredentialMapper.isMsoMdocOid4VPEncoded(credential)) {\n return await this.cvVerifyMdoc({ credential }, context)\n } else if (CredentialMapper.isSdJwtEncoded(credential)) {\n return await this.cvVerifySDJWTCredential({ credential, hasher }, context)\n } else {\n return await this.cvVerifyW3CCredential(\n {\n ...args,\n credential: credential as VeramoW3CVerifiableCredential,\n },\n context,\n )\n }\n }\n\n private async cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, validationPolicy } = args\n const wrappedCredential: WrappedVerifiableCredential = CredentialMapper.toWrappedVerifiableCredential(credential, { hasher })\n if (validationPolicy === SchemaValidation.NEVER) {\n return {\n result: true,\n source: wrappedCredential,\n subResults: [],\n }\n }\n return this.validateSchema(wrappedCredential, validationPolicy)\n }\n\n private async validateSchema(wrappedVC: WrappedVerifiableCredential, validationPolicy?: SchemaValidation): Promise<VerificationResult> {\n const schemas: ICredentialSchemaType[] | undefined = this.detectSchemas(wrappedVC)\n if (!schemas) {\n if (validationPolicy === SchemaValidation.ALWAYS) {\n console.error(\n `No schema found for credential, but validation policy is set to ALWAYS. Returning false. Credential: ${JSON.stringify(wrappedVC.credential, null, 2)}`,\n )\n return {\n result: false,\n source: wrappedVC,\n subResults: [],\n }\n } else {\n return {\n result: true,\n source: wrappedVC,\n subResults: [],\n }\n }\n }\n\n const subResults: VerificationSubResult[] = await Promise.all(schemas.map((schema) => this.verifyCredentialAgainstSchema(wrappedVC, schema)))\n\n return {\n result: subResults.every((subResult) => subResult.result),\n source: wrappedVC,\n subResults,\n }\n }\n\n private async fetchSchema(uri: string) {\n const response = await fetch(uri)\n if (!response.ok) {\n throw new Error(`Unable to fetch schema from ${uri}`)\n }\n return response.json()\n }\n\n private async verifyCredentialAgainstSchema(wrappedVC: WrappedVerifiableCredential, schema: ICredentialSchemaType): Promise<VerificationSubResult> {\n const schemaUrl: string = typeof schema === 'string' ? schema : schema.id\n let schemaValue\n try {\n schemaValue = await this.fetchSchema(schemaUrl)\n } catch (error) {\n console.error(error)\n return {\n result: false,\n error: error,\n }\n }\n\n const ajv = new Ajv2020({ loadSchema: this.fetchSchema })\n addFormats(ajv)\n\n const validate = await ajv.compileAsync(schemaValue)\n const valid = validate(wrappedVC.credential)\n if (!valid) {\n console.error(`Schema validation failed for `, wrappedVC.credential)\n }\n return {\n result: valid,\n }\n }\n\n private async cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential } = args\n\n const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL))\n\n const verification = await context.agent.mdocVerifyIssuerSigned({ input: issuerSigned.toJson().issuerAuth }).catch((error: Error) => {\n console.error(error)\n return {\n name: 'mdoc',\n critical: true,\n error: true,\n message: error.message ?? 'Mdoc Issuer Signed VC could not be verified',\n } satisfies IVerifySignatureResult<ICoseKeyJson>\n })\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: !verification.error,\n subResults: [],\n ...(verification.error && {\n error: verification.message ?? `Could not verify mdoc from issuer`,\n }),\n }\n }\n\n private async cvVerifyW3CCredential(args: IVerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n // We also allow/add boolean, because 4.x Veramo returns a boolean for JWTs. 5.X will return better results\n const { credential, policies } = args\n\n const result: IVerifyResult | boolean = (await context.agent.verifyCredential(args)) as IVerifyResult | boolean\n\n if (typeof result === 'boolean') {\n return {\n // FIXME the source is never used, need to start using this as the source of truth\n source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result,\n ...(!result && {\n error: 'Invalid JWT VC',\n errorDetails: `JWT VC was not valid with policies: ${JSON.stringify(policies)}`,\n }),\n subResults: [],\n }\n } else {\n // TODO look at what this is doing and make it simple and readable\n let error: string | undefined\n let errorDetails: string | undefined\n const subResults: Array<VerificationSubResult> = []\n if (result.error) {\n error = result.error?.message ?? ''\n errorDetails = result.error?.details?.code ?? ''\n errorDetails = (errorDetails !== '' ? `${errorDetails}, ` : '') + (result.error?.details?.url ?? '')\n if (result.error?.errors) {\n error = (error !== '' ? `${error}, ` : '') + result.error?.errors?.map((error) => error.message ?? error.name).join(', ')\n errorDetails =\n (errorDetails !== '' ? `${errorDetails}, ` : '') +\n result.error?.errors?.map((error) => (error?.details?.code ? `${error.details.code}, ` : '') + (error?.details?.url ?? '')).join(', ')\n }\n console.error(error)\n }\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: result.verified,\n subResults,\n error,\n errorDetails,\n }\n }\n }\n\n private async cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher } = args\n\n const verification: IVerifySdJwtVcResult | CredentialVerificationError = await context.agent\n .verifySdJwtVc({ credential })\n .catch((error: Error): CredentialVerificationError => {\n console.error(error)\n return {\n error: 'Invalid SD-JWT VC',\n errorDetails: error.message ?? 'SD-JWT VC could not be verified',\n }\n })\n\n const result = 'header' in verification && 'payload' in verification\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: hasher ?? defaultHasher }),\n result,\n subResults: [],\n ...(!result && { ...verification }),\n }\n }\n}\n","import { IAgentContext, ICredentialVerifier, IPluginMethodMap } from '@veramo/core'\nimport { HasherSync, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '@sphereon/ssi-types'\nimport { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc'\nimport { OriginalVerifiableCredential } from '@sphereon/ssi-types'\n\nexport interface ICredentialValidation extends IPluginMethodMap {\n cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult>\n cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifyW3CCredential(args: VerifyW3CCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n}\n\nexport enum SchemaValidation {\n ALWAYS = 'ALWAYS',\n NEVER = 'NEVER',\n WHEN_PRESENT = 'WHEN_PRESENT',\n}\n\nexport type VerifyCredentialArgs = {\n credential: OriginalVerifiableCredential\n hasher?: HasherSync\n fetchRemoteContexts: boolean\n policies?: VerificationPolicies\n}\n\nexport type VerificationPolicies = {\n schemaValidation?: SchemaValidation\n credentialStatus?: boolean\n expirationDate: boolean\n issuanceDate: boolean\n}\n\nexport type ValidateSchemaArgs = {\n credential: OriginalVerifiableCredential\n validationPolicy?: SchemaValidation\n hasher?: HasherSync\n}\n\nexport type VerifyMdocCredentialArgs = { credential: string }\n\nexport type VerifySDJWTCredentialArgs = {\n credential: string\n hasher?: HasherSync\n}\n\nexport type VerifyW3CCredentialArgs = {}\n\nexport type VerificationResult = {\n result: boolean\n source: WrappedVerifiableCredential | WrappedVerifiablePresentation\n subResults: Array<VerificationSubResult>\n error?: string | undefined\n errorDetails?: string\n}\n\nexport type VerificationSubResult = {\n result: boolean\n error?: string\n errorDetails?: string\n}\n\nexport type CredentialVerificationError = {\n error?: string\n errorDetails?: string\n}\n\nexport type RequiredContext = IAgentContext<ImDLMdoc & ICredentialVerifier>\n"],"mappings":"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","names":["module","decodeFrom","IssuerSignedCbor","credentialValidationMethods","CredentialValidation","schema","ICredentialValidation","methods","cvVerifyCredential","bind","cvVerifySchema","cvVerifyMdoc","cvVerifySDJWTCredential","cvVerifyW3CCredential","detectSchemas","wrappedVC","credential","credentialSchema","Array","isArray","undefined","args","context","hasher","defaultHasher","policies","schemaResult","validationPolicy","schemaValidation","SchemaValidation","WHEN_PRESENT","result","CredentialMapper","isMsoMdocOid4VPEncoded","isSdJwtEncoded","wrappedCredential","toWrappedVerifiableCredential","NEVER","source","subResults","validateSchema","schemas","ALWAYS","console","error","JSON","stringify","Promise","all","map","verifyCredentialAgainstSchema","every","subResult","fetchSchema","uri","response","fetch","ok","Error","json","schemaUrl","id","schemaValue","ajv","Ajv2020","loadSchema","addFormats","validate","compileAsync","valid","issuerSigned","Static","cborDecode","com","sphereon","kmp","Encoding","BASE64URL","verification","agent","mdocVerifyIssuerSigned","input","toJson","issuerAuth","catch","name","critical","message","verifyCredential","errorDetails","details","code","url","errors","join","verified","verifySdJwtVc","SchemaValidation","schema","require"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/CredentialValidation.ts","../src/types/ICredentialValidation.ts"],"sourcesContent":["{\n \"ICredentialValidation\": {\n \"components\": {\n \"schemas\": {\n \"VerifyCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n },\n \"fetchRemoteContexts\": {\n \"type\": \"boolean\"\n },\n \"policies\": {\n \"$ref\": \"#/components/schemas/VerificationPolicies\"\n }\n },\n \"required\": [\"credential\", \"fetchRemoteContexts\"],\n \"additionalProperties\": false\n },\n \"OriginalVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n }\n ]\n },\n \"W3CVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format. See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"credentialSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n }\n }\n ]\n },\n \"issuer\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIssuerId\"\n },\n {\n \"$ref\": \"#/components/schemas/IIssuer\"\n }\n ]\n },\n \"issuanceDate\": {\n \"type\": \"string\"\n },\n \"credentialSubject\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n ]\n },\n \"expirationDate\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"credentialStatus\": {\n \"$ref\": \"#/components/schemas/ICredentialStatus\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"credentialSubject\", \"issuanceDate\", \"issuer\", \"proof\", \"type\"]\n },\n \"IProof\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofType\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"created\": {\n \"type\": \"string\"\n },\n \"proofPurpose\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofPurpose\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"string\"\n },\n \"challenge\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"type\": \"string\"\n },\n \"proofValue\": {\n \"type\": \"string\"\n },\n \"jws\": {\n \"type\": \"string\"\n },\n \"jwt\": {\n \"type\": \"string\"\n },\n \"mso_mdoc\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"requiredRevealStatements\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"type\", \"created\", \"proofPurpose\", \"verificationMethod\"]\n },\n \"IProofType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519Signature2018\",\n \"Ed25519Signature2020\",\n \"EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256k1RecoverySignature2020\",\n \"JsonWebSignature2020\",\n \"RsaSignature2018\",\n \"GpgSignature2020\",\n \"JcsEd25519Signature2020\",\n \"BbsBlsSignatureProof2020\",\n \"BbsBlsBoundSignatureProof2020\",\n \"JwtProof2020\",\n \"SdJwtProof2024\",\n \"MsoMdocProof2024\"\n ]\n },\n \"IProofPurpose\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"assertionMethod\",\n \"authentication\",\n \"keyAgreement\",\n \"contactAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ]\n },\n \"ICredentialContextType\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"did\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchemaType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchema\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"],\n \"additionalProperties\": false\n },\n \"IIssuerId\": {\n \"type\": \"string\"\n },\n \"IIssuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"]\n },\n \"ICredentialStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\", \"type\"]\n },\n \"CompactJWT\": {\n \"type\": \"string\",\n \"description\": \"Represents a Json Web Token in compact form.\"\n },\n \"JwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"vc\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vc\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\"]\n },\n \"SdJwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"compactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"The compact sd jwt is the sd-jwt encoded as string. It is a normal JWT, with the disclosures and kb-jwt appended separated by ~\"\n },\n \"disclosures\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SdJwtDisclosure\"\n },\n \"description\": \"The disclosures included within the SD-JWT in both encoded and decoded format. The digests are also included, and allows the disclosures to be linked against the digests in the signed payload.\"\n },\n \"signedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtSignedVerifiableCredentialPayload\",\n \"description\": \"The signed payload is the payload of the sd-jwt that is actually signed, and that includes the `_sd` and `...` digests.\"\n },\n \"decodedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"The decoded payload is the payload when all `_sd` and `...` digests have been replaced by the actual values from the disclosures. This format could also be seen as the 'pretty` version of the SD JWT payload.\\n\\nThis is useful for displaying the contents of the SD JWT VC to the user, or for example for querying the contents of the SD JWT VC using a PEX presentation definition path.\"\n },\n \"kbJwt\": {\n \"type\": \"object\",\n \"properties\": {\n \"header\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtHeader\"\n },\n \"payload\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtPayload\"\n },\n \"compact\": {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n },\n \"required\": [\"header\", \"payload\"],\n \"additionalProperties\": false,\n \"description\": \"Key binding JWT\"\n }\n },\n \"required\": [\"compactSdJwtVc\", \"disclosures\", \"signedPayload\", \"decodedPayload\"],\n \"additionalProperties\": false,\n \"description\": \"The decoded SD JWT Verifiable Credential. This representation includes multiple representations of the same SD-JWT, and allows to fully process an SD-JWT, as well as create a presentation SD-JWT (minus the KB-JWT) by removing certain disclosures from the compact SD-JWT.\\n\\nThis representation is useful as it doesn't require a hasher implementation to match the different digests in the signed SD-JWT payload, with the different disclosures.\"\n },\n \"SdJwtDisclosure\": {\n \"type\": \"object\",\n \"properties\": {\n \"encoded\": {\n \"type\": \"string\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedDisclosure\"\n },\n \"digest\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"encoded\", \"decoded\", \"digest\"],\n \"additionalProperties\": false\n },\n \"SdJwtDecodedDisclosure\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"minItems\": 3,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 3\n },\n {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 2\n }\n ]\n },\n \"JsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n }\n ]\n },\n \"SdJwtSignedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"_sd_alg\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"required\": [\"iat\", \"iss\", \"vct\"],\n \"description\": \"The signed payload of an SD-JWT. Includes fields such as `_sd`, `...` and `_sd_alg`\"\n },\n \"SdJwtJsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"...\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"...\"],\n \"additionalProperties\": false\n }\n ]\n }\n }\n ]\n },\n \"SdJwtDecodedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vct\", \"iss\", \"iat\"],\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"description\": \"Decoded 'pretty' SD JWT Verifiable Credential. This representation has all the `_sd` properties removed, and includes the disclosures directly within the payload.\"\n },\n \"SdJwtVcKbJwtHeader\": {\n \"type\": \"object\",\n \"properties\": {\n \"typ\": {\n \"type\": \"string\",\n \"const\": \"kb+jwt\"\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"typ\", \"alg\"]\n },\n \"SdJwtVcKbJwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iat\": {\n \"type\": \"number\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"sd_hash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"iat\", \"aud\", \"nonce\", \"sd_hash\"],\n \"additionalProperties\": {}\n },\n \"MdocOid4vpIssuerSigned\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"MdocDocument\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DocumentCbor\"\n },\n \"com.sphereon.mdoc.data.device.DocumentCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"HasherSync\": {\n \"$comment\": \"(data: string | ArrayBuffer, alg: string) => Uint8Array\",\n \"type\": \"object\",\n \"properties\": {\n \"namedArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/ArrayBuffer\"\n }\n ]\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"data\", \"alg\"],\n \"additionalProperties\": false\n }\n }\n },\n \"ArrayBuffer\": {\n \"type\": \"object\",\n \"properties\": {\n \"byteLength\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"byteLength\"],\n \"additionalProperties\": false\n },\n \"VerificationPolicies\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemaValidation\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"credentialStatus\": {\n \"type\": \"boolean\"\n },\n \"expirationDate\": {\n \"type\": \"boolean\"\n },\n \"issuanceDate\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"expirationDate\", \"issuanceDate\"],\n \"additionalProperties\": false\n },\n \"SchemaValidation\": {\n \"type\": \"string\",\n \"enum\": [\"ALWAYS\", \"NEVER\", \"WHEN_PRESENT\"]\n },\n \"VerificationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"source\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiablePresentation\"\n }\n ]\n },\n \"subResults\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationSubResult\"\n }\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\", \"source\", \"subResults\"],\n \"additionalProperties\": false\n },\n \"WrappedVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n }\n ]\n },\n \"WrappedW3CVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n }\n ],\n \"description\": \"Original VC that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n }\n ],\n \"description\": \"In case of JWT credential it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this credential. Supported types are json-ld, jwt (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vc\", \"ldp_vc\", \"ldp\", \"jwt\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"OriginalType.JSONLD\": {\n \"type\": \"string\",\n \"const\": \"json-ld\"\n },\n \"OriginalType.JWT_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-encoded\"\n },\n \"OriginalType.JWT_DECODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-decoded\"\n },\n \"WrappedSdJwtVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VC that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT as the `decoded` property is used in e.g. PEX to check for path filters from fields. The full decoded credential can be found in the `credential` field.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"vc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"CompactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"OriginalType.SD_JWT_VC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-decoded\"\n },\n \"OriginalType.SD_JWT_VC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-encoded\"\n },\n \"WrappedMdocCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n }\n ],\n \"description\": \"Original IssuerSigned to Mdoc that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDecodedPayload\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/MdocDocument\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"MdocDecodedPayload\": {\n \"$ref\": \"#/components/schemas/Record<string,Record<string,(string|number|boolean)>>\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"Record<string,Record<string,(string|number|boolean)>>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/Record<string,(string|number|boolean)>\"\n }\n },\n \"Record<string,(string|number|boolean)>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": [\"string\", \"number\", \"boolean\"]\n }\n },\n \"OriginalType.MSO_MDOC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-decoded\"\n },\n \"OriginalType.MSO_MDOC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-encoded\"\n },\n \"WrappedVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocPresentation\"\n }\n ]\n },\n \"WrappedW3CVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n }\n ],\n \"description\": \"Original VP that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n }\n ],\n \"description\": \"In case of JWT VP it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation. Supported types are json-ld and jwt (decoded/encoded) and sd-jwt-vc (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vp\", \"ldp_vp\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/UniformVerifiablePresentation\",\n \"description\": \"Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"W3CVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n },\n \"verifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"proof\"]\n },\n \"PresentationSubmission\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Submission\"\n },\n \"definition_id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Definition\"\n },\n \"descriptor_map\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"description\": \"List of descriptors of how the claims are being mapped to presentation definition\"\n }\n },\n \"required\": [\"id\", \"definition_id\", \"descriptor_map\"],\n \"additionalProperties\": false,\n \"description\": \"It expresses how the inputs are presented as proofs to a Verifier.\"\n },\n \"Descriptor\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to identify the descriptor from Presentation Definition Input Descriptor it coresponds to.\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The path where the verifiable credential is located in the presentation submission json\"\n },\n \"path_nested\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"The Proof or JWT algorith that the proof is in\"\n }\n },\n \"required\": [\"id\", \"path\", \"format\"],\n \"additionalProperties\": false,\n \"description\": \"descriptor map laying out the structure of the presentation submission.\"\n },\n \"JwtDecodedVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"vp\": {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vp\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\", \"aud\", \"iat\"]\n },\n \"UniformVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"type\", \"verifiableCredential\"],\n \"additionalProperties\": false\n },\n \"WrappedSdJwtVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"vc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n \"minItems\": 1,\n \"maxItems\": 1,\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation. Will always be an array with a single SdJwtVerifiableCredential entry.\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"WrappedMdocPresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpMdocVpToken\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n },\n \"description\": \"Wrapped Mdocs belonging to the Presentation. There can be multiple documents in a single device response\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"MdocDeviceResponse\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DeviceResponseCbor\"\n },\n \"com.sphereon.mdoc.data.device.DeviceResponseCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"MdocOid4vpMdocVpToken\": {\n \"type\": \"string\"\n },\n \"VerificationSubResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\"],\n \"additionalProperties\": false\n },\n \"VerifyMdocCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"ValidateSchemaArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"validationPolicy\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifySDJWTCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifyW3CCredentialArgs\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"cvVerifyCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyMdoc\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyMdocCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySchema\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ValidateSchemaArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySDJWTCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifySDJWTCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyW3CCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyW3CCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { CredentialValidation, credentialValidationMethods } from './agent/CredentialValidation'\nexport * from './types/ICredentialValidation'\n","import mdocPkg from '@sphereon/kmp-mdoc-core'\nconst { com } = mdocPkg\nimport { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'\nimport {\n CredentialMapper,\n ICoseKeyJson,\n ICredentialSchemaType,\n IVerifyResult,\n OriginalVerifiableCredential,\n WrappedVerifiableCredential,\n} from '@sphereon/ssi-types'\nimport { IAgentPlugin, IVerifyCredentialArgs, W3CVerifiableCredential as VeramoW3CVerifiableCredential } from '@veramo/core'\nimport addFormats from 'ajv-formats'\nimport Ajv2020 from 'ajv/dist/2020'\nimport fetch from 'cross-fetch'\nimport {\n CredentialVerificationError,\n ICredentialValidation,\n RequiredContext,\n schema,\n SchemaValidation,\n ValidateSchemaArgs,\n VerificationResult,\n VerificationSubResult,\n VerifyCredentialArgs,\n VerifyMdocCredentialArgs,\n VerifySDJWTCredentialArgs,\n} from '../index'\nimport IVerifySignatureResult = mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult\nimport decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom\nimport IssuerSignedCbor = mdocPkg.com.sphereon.mdoc.data.device.IssuerSignedCbor\nimport { defaultHasher } from '@sphereon/ssi-sdk.core'\n\n// Exposing the methods here for any REST implementation\nexport const credentialValidationMethods: Array<string> = [\n 'cvVerifyCredential',\n 'cvVerifySchema',\n 'cvVerifyMdoc',\n 'cvVerifySDJWTCredential',\n 'cvVerifyW3CCredential',\n]\n\n/**\n * {@inheritDoc ICredentialValidation}\n */\nexport class CredentialValidation implements IAgentPlugin {\n readonly schema = schema.ICredentialValidation\n readonly methods: ICredentialValidation = {\n cvVerifyCredential: this.cvVerifyCredential.bind(this),\n cvVerifySchema: this.cvVerifySchema.bind(this),\n cvVerifyMdoc: this.cvVerifyMdoc.bind(this),\n cvVerifySDJWTCredential: this.cvVerifySDJWTCredential.bind(this),\n cvVerifyW3CCredential: this.cvVerifyW3CCredential.bind(this),\n }\n\n private detectSchemas(wrappedVC: WrappedVerifiableCredential): ICredentialSchemaType[] | undefined {\n if ('credential' in wrappedVC) {\n const { credential } = wrappedVC\n\n if ('credentialSchema' in credential) {\n const { credentialSchema } = credential\n\n if (Array.isArray(credentialSchema)) {\n return credentialSchema\n } else if (credentialSchema) {\n return [credentialSchema]\n }\n }\n }\n\n return undefined\n }\n\n private async cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, policies } = args\n // defaulting the schema validation to when_present\n const schemaResult = await this.cvVerifySchema({\n credential,\n validationPolicy: policies?.schemaValidation ?? SchemaValidation.WHEN_PRESENT,\n hasher,\n })\n if (!schemaResult.result) {\n return schemaResult\n }\n if (CredentialMapper.isMsoMdocOid4VPEncoded(credential)) {\n return await this.cvVerifyMdoc({ credential }, context)\n } else if (CredentialMapper.isSdJwtEncoded(credential)) {\n return await this.cvVerifySDJWTCredential({ credential, hasher }, context)\n } else {\n return await this.cvVerifyW3CCredential(\n {\n ...args,\n credential: credential as VeramoW3CVerifiableCredential,\n },\n context,\n )\n }\n }\n\n private async cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, validationPolicy } = args\n const wrappedCredential: WrappedVerifiableCredential = CredentialMapper.toWrappedVerifiableCredential(credential, { hasher })\n if (validationPolicy === SchemaValidation.NEVER) {\n return {\n result: true,\n source: wrappedCredential,\n subResults: [],\n }\n }\n return this.validateSchema(wrappedCredential, validationPolicy)\n }\n\n private async validateSchema(wrappedVC: WrappedVerifiableCredential, validationPolicy?: SchemaValidation): Promise<VerificationResult> {\n const schemas: ICredentialSchemaType[] | undefined = this.detectSchemas(wrappedVC)\n if (!schemas) {\n if (validationPolicy === SchemaValidation.ALWAYS) {\n console.error(\n `No schema found for credential, but validation policy is set to ALWAYS. Returning false. Credential: ${JSON.stringify(wrappedVC.credential, null, 2)}`,\n )\n return {\n result: false,\n source: wrappedVC,\n subResults: [],\n }\n } else {\n return {\n result: true,\n source: wrappedVC,\n subResults: [],\n }\n }\n }\n\n const subResults: VerificationSubResult[] = await Promise.all(schemas.map((schema) => this.verifyCredentialAgainstSchema(wrappedVC, schema)))\n\n return {\n result: subResults.every((subResult) => subResult.result),\n source: wrappedVC,\n subResults,\n }\n }\n\n private async fetchSchema(uri: string) {\n const response = await fetch(uri)\n if (!response.ok) {\n throw new Error(`Unable to fetch schema from ${uri}`)\n }\n return response.json()\n }\n\n private async verifyCredentialAgainstSchema(wrappedVC: WrappedVerifiableCredential, schema: ICredentialSchemaType): Promise<VerificationSubResult> {\n const schemaUrl: string = typeof schema === 'string' ? schema : schema.id\n let schemaValue\n try {\n schemaValue = await this.fetchSchema(schemaUrl)\n } catch (error) {\n console.error(error)\n return {\n result: false,\n error: error,\n }\n }\n\n const ajv = new Ajv2020({ loadSchema: this.fetchSchema })\n addFormats(ajv)\n\n const validate = await ajv.compileAsync(schemaValue)\n const valid = validate(wrappedVC.credential)\n if (!valid) {\n console.error(`Schema validation failed for `, wrappedVC.credential)\n }\n return {\n result: valid,\n }\n }\n\n private async cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential } = args\n\n const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL))\n\n const verification = await context.agent.mdocVerifyIssuerSigned({ input: issuerSigned.toJson().issuerAuth }).catch((error: Error) => {\n console.error(error)\n return {\n name: 'mdoc',\n critical: true,\n error: true,\n message: error.message ?? 'Mdoc Issuer Signed VC could not be verified',\n } satisfies IVerifySignatureResult<ICoseKeyJson>\n })\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: !verification.error,\n subResults: [],\n ...(verification.error && {\n error: verification.message ?? `Could not verify mdoc from issuer`,\n }),\n }\n }\n\n private async cvVerifyW3CCredential(args: IVerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n // We also allow/add boolean, because 4.x Veramo returns a boolean for JWTs. 5.X will return better results\n const { credential, policies } = args\n\n const result: IVerifyResult | boolean = (await context.agent.verifyCredential(args)) as IVerifyResult | boolean\n\n if (typeof result === 'boolean') {\n return {\n // FIXME the source is never used, need to start using this as the source of truth\n source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result,\n ...(!result && {\n error: 'Invalid JWT VC',\n errorDetails: `JWT VC was not valid with policies: ${JSON.stringify(policies)}`,\n }),\n subResults: [],\n }\n } else {\n // TODO look at what this is doing and make it simple and readable\n let error: string | undefined\n let errorDetails: string | undefined\n const subResults: Array<VerificationSubResult> = []\n if (result.error) {\n error = result.error?.message ?? ''\n errorDetails = result.error?.details?.code ?? ''\n errorDetails = (errorDetails !== '' ? `${errorDetails}, ` : '') + (result.error?.details?.url ?? '')\n if (result.error?.errors) {\n error = (error !== '' ? `${error}, ` : '') + result.error?.errors?.map((error) => error.message ?? error.name).join(', ')\n errorDetails =\n (errorDetails !== '' ? `${errorDetails}, ` : '') +\n result.error?.errors?.map((error) => (error?.details?.code ? `${error.details.code}, ` : '') + (error?.details?.url ?? '')).join(', ')\n }\n console.error(error)\n }\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: result.verified,\n subResults,\n error,\n errorDetails,\n }\n }\n }\n\n private async cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher } = args\n\n const verification: IVerifySdJwtVcResult | CredentialVerificationError = await context.agent\n .verifySdJwtVc({ credential })\n .catch((error: Error): CredentialVerificationError => {\n console.error(error)\n return {\n error: 'Invalid SD-JWT VC',\n errorDetails: error.message ?? 'SD-JWT VC could not be verified',\n }\n })\n\n const result = 'header' in verification && 'payload' in verification\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: hasher ?? defaultHasher }),\n result,\n subResults: [],\n ...(!result && { ...verification }),\n }\n }\n}\n","import { IAgentContext, ICredentialVerifier, IPluginMethodMap } from '@veramo/core'\nimport { HasherSync, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '@sphereon/ssi-types'\nimport { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc'\nimport { OriginalVerifiableCredential } from '@sphereon/ssi-types'\n\nexport interface ICredentialValidation extends IPluginMethodMap {\n cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult>\n cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifyW3CCredential(args: VerifyW3CCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n}\n\nexport enum SchemaValidation {\n ALWAYS = 'ALWAYS',\n NEVER = 'NEVER',\n WHEN_PRESENT = 'WHEN_PRESENT',\n}\n\nexport type VerifyCredentialArgs = {\n credential: OriginalVerifiableCredential\n hasher?: HasherSync\n fetchRemoteContexts: boolean\n policies?: VerificationPolicies\n}\n\nexport type VerificationPolicies = {\n schemaValidation?: SchemaValidation\n credentialStatus?: boolean\n expirationDate: boolean\n issuanceDate: boolean\n}\n\nexport type ValidateSchemaArgs = {\n credential: OriginalVerifiableCredential\n validationPolicy?: SchemaValidation\n hasher?: HasherSync\n}\n\nexport type VerifyMdocCredentialArgs = { credential: string }\n\nexport type VerifySDJWTCredentialArgs = {\n credential: string\n hasher?: HasherSync\n}\n\nexport type VerifyW3CCredentialArgs = {}\n\nexport type VerificationResult = {\n result: boolean\n source: WrappedVerifiableCredential | WrappedVerifiablePresentation\n subResults: Array<VerificationSubResult>\n error?: string | undefined\n errorDetails?: string\n}\n\nexport type VerificationSubResult = {\n result: boolean\n error?: string\n errorDetails?: string\n}\n\nexport type CredentialVerificationError = {\n error?: string\n errorDetails?: string\n}\n\nexport type RequiredContext = IAgentContext<ImDLMdoc & ICredentialVerifier>\n"],"mappings":"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","names":["module","com","mdocPkg","decodeFrom","IssuerSignedCbor","credentialValidationMethods","CredentialValidation","schema","ICredentialValidation","methods","cvVerifyCredential","bind","cvVerifySchema","cvVerifyMdoc","cvVerifySDJWTCredential","cvVerifyW3CCredential","detectSchemas","wrappedVC","credential","credentialSchema","Array","isArray","undefined","args","context","hasher","defaultHasher","policies","schemaResult","validationPolicy","schemaValidation","SchemaValidation","WHEN_PRESENT","result","CredentialMapper","isMsoMdocOid4VPEncoded","isSdJwtEncoded","wrappedCredential","toWrappedVerifiableCredential","NEVER","source","subResults","validateSchema","schemas","ALWAYS","console","error","JSON","stringify","Promise","all","map","verifyCredentialAgainstSchema","every","subResult","fetchSchema","uri","response","fetch","ok","Error","json","schemaUrl","id","schemaValue","ajv","Ajv2020","loadSchema","addFormats","validate","compileAsync","valid","issuerSigned","Static","cborDecode","sphereon","kmp","Encoding","BASE64URL","verification","agent","mdocVerifyIssuerSigned","input","toJson","issuerAuth","catch","name","critical","message","verifyCredential","errorDetails","details","code","url","errors","join","verified","verifySdJwtVc","SchemaValidation","schema","require"]}
package/dist/index.js CHANGED
@@ -1479,14 +1479,15 @@ var require_plugin_schema = __commonJS({
1479
1479
  });
1480
1480
 
1481
1481
  // src/agent/CredentialValidation.ts
1482
- import { com } from "@sphereon/kmp-mdoc-core";
1482
+ import mdocPkg from "@sphereon/kmp-mdoc-core";
1483
1483
  import { CredentialMapper } from "@sphereon/ssi-types";
1484
1484
  import addFormats from "ajv-formats";
1485
1485
  import Ajv2020 from "ajv/dist/2020";
1486
1486
  import fetch from "cross-fetch";
1487
1487
  import { defaultHasher } from "@sphereon/ssi-sdk.core";
1488
- var decodeFrom = com.sphereon.kmp.decodeFrom;
1489
- var IssuerSignedCbor = com.sphereon.mdoc.data.device.IssuerSignedCbor;
1488
+ var { com } = mdocPkg;
1489
+ var decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom;
1490
+ var IssuerSignedCbor = mdocPkg.com.sphereon.mdoc.data.device.IssuerSignedCbor;
1490
1491
  var credentialValidationMethods = [
1491
1492
  "cvVerifyCredential",
1492
1493
  "cvVerifySchema",
@@ -1711,12 +1712,12 @@ var CredentialValidation = class {
1711
1712
  };
1712
1713
 
1713
1714
  // src/types/ICredentialValidation.ts
1714
- var SchemaValidation = /* @__PURE__ */ (function(SchemaValidation2) {
1715
+ var SchemaValidation = /* @__PURE__ */ function(SchemaValidation2) {
1715
1716
  SchemaValidation2["ALWAYS"] = "ALWAYS";
1716
1717
  SchemaValidation2["NEVER"] = "NEVER";
1717
1718
  SchemaValidation2["WHEN_PRESENT"] = "WHEN_PRESENT";
1718
1719
  return SchemaValidation2;
1719
- })({});
1720
+ }({});
1720
1721
 
1721
1722
  // src/index.ts
1722
1723
  var schema = require_plugin_schema();
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../src/agent/CredentialValidation.ts","../src/types/ICredentialValidation.ts","../src/index.ts"],"sourcesContent":["{\n \"ICredentialValidation\": {\n \"components\": {\n \"schemas\": {\n \"VerifyCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n },\n \"fetchRemoteContexts\": {\n \"type\": \"boolean\"\n },\n \"policies\": {\n \"$ref\": \"#/components/schemas/VerificationPolicies\"\n }\n },\n \"required\": [\"credential\", \"fetchRemoteContexts\"],\n \"additionalProperties\": false\n },\n \"OriginalVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n }\n ]\n },\n \"W3CVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format. See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"credentialSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n }\n }\n ]\n },\n \"issuer\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIssuerId\"\n },\n {\n \"$ref\": \"#/components/schemas/IIssuer\"\n }\n ]\n },\n \"issuanceDate\": {\n \"type\": \"string\"\n },\n \"credentialSubject\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n ]\n },\n \"expirationDate\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"credentialStatus\": {\n \"$ref\": \"#/components/schemas/ICredentialStatus\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"credentialSubject\", \"issuanceDate\", \"issuer\", \"proof\", \"type\"]\n },\n \"IProof\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofType\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"created\": {\n \"type\": \"string\"\n },\n \"proofPurpose\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofPurpose\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"string\"\n },\n \"challenge\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"type\": \"string\"\n },\n \"proofValue\": {\n \"type\": \"string\"\n },\n \"jws\": {\n \"type\": \"string\"\n },\n \"jwt\": {\n \"type\": \"string\"\n },\n \"mso_mdoc\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"requiredRevealStatements\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"type\", \"created\", \"proofPurpose\", \"verificationMethod\"]\n },\n \"IProofType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519Signature2018\",\n \"Ed25519Signature2020\",\n \"EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256k1RecoverySignature2020\",\n \"JsonWebSignature2020\",\n \"RsaSignature2018\",\n \"GpgSignature2020\",\n \"JcsEd25519Signature2020\",\n \"BbsBlsSignatureProof2020\",\n \"BbsBlsBoundSignatureProof2020\",\n \"JwtProof2020\",\n \"SdJwtProof2024\",\n \"MsoMdocProof2024\"\n ]\n },\n \"IProofPurpose\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"assertionMethod\",\n \"authentication\",\n \"keyAgreement\",\n \"contactAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ]\n },\n \"ICredentialContextType\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"did\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchemaType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchema\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"],\n \"additionalProperties\": false\n },\n \"IIssuerId\": {\n \"type\": \"string\"\n },\n \"IIssuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"]\n },\n \"ICredentialStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\", \"type\"]\n },\n \"CompactJWT\": {\n \"type\": \"string\",\n \"description\": \"Represents a Json Web Token in compact form.\"\n },\n \"JwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"vc\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vc\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\"]\n },\n \"SdJwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"compactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"The compact sd jwt is the sd-jwt encoded as string. It is a normal JWT, with the disclosures and kb-jwt appended separated by ~\"\n },\n \"disclosures\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SdJwtDisclosure\"\n },\n \"description\": \"The disclosures included within the SD-JWT in both encoded and decoded format. The digests are also included, and allows the disclosures to be linked against the digests in the signed payload.\"\n },\n \"signedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtSignedVerifiableCredentialPayload\",\n \"description\": \"The signed payload is the payload of the sd-jwt that is actually signed, and that includes the `_sd` and `...` digests.\"\n },\n \"decodedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"The decoded payload is the payload when all `_sd` and `...` digests have been replaced by the actual values from the disclosures. This format could also be seen as the 'pretty` version of the SD JWT payload.\\n\\nThis is useful for displaying the contents of the SD JWT VC to the user, or for example for querying the contents of the SD JWT VC using a PEX presentation definition path.\"\n },\n \"kbJwt\": {\n \"type\": \"object\",\n \"properties\": {\n \"header\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtHeader\"\n },\n \"payload\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtPayload\"\n },\n \"compact\": {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n },\n \"required\": [\"header\", \"payload\"],\n \"additionalProperties\": false,\n \"description\": \"Key binding JWT\"\n }\n },\n \"required\": [\"compactSdJwtVc\", \"disclosures\", \"signedPayload\", \"decodedPayload\"],\n \"additionalProperties\": false,\n \"description\": \"The decoded SD JWT Verifiable Credential. This representation includes multiple representations of the same SD-JWT, and allows to fully process an SD-JWT, as well as create a presentation SD-JWT (minus the KB-JWT) by removing certain disclosures from the compact SD-JWT.\\n\\nThis representation is useful as it doesn't require a hasher implementation to match the different digests in the signed SD-JWT payload, with the different disclosures.\"\n },\n \"SdJwtDisclosure\": {\n \"type\": \"object\",\n \"properties\": {\n \"encoded\": {\n \"type\": \"string\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedDisclosure\"\n },\n \"digest\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"encoded\", \"decoded\", \"digest\"],\n \"additionalProperties\": false\n },\n \"SdJwtDecodedDisclosure\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"minItems\": 3,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 3\n },\n {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 2\n }\n ]\n },\n \"JsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n }\n ]\n },\n \"SdJwtSignedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"_sd_alg\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"required\": [\"iat\", \"iss\", \"vct\"],\n \"description\": \"The signed payload of an SD-JWT. Includes fields such as `_sd`, `...` and `_sd_alg`\"\n },\n \"SdJwtJsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"...\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"...\"],\n \"additionalProperties\": false\n }\n ]\n }\n }\n ]\n },\n \"SdJwtDecodedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vct\", \"iss\", \"iat\"],\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"description\": \"Decoded 'pretty' SD JWT Verifiable Credential. This representation has all the `_sd` properties removed, and includes the disclosures directly within the payload.\"\n },\n \"SdJwtVcKbJwtHeader\": {\n \"type\": \"object\",\n \"properties\": {\n \"typ\": {\n \"type\": \"string\",\n \"const\": \"kb+jwt\"\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"typ\", \"alg\"]\n },\n \"SdJwtVcKbJwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iat\": {\n \"type\": \"number\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"sd_hash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"iat\", \"aud\", \"nonce\", \"sd_hash\"],\n \"additionalProperties\": {}\n },\n \"MdocOid4vpIssuerSigned\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"MdocDocument\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DocumentCbor\"\n },\n \"com.sphereon.mdoc.data.device.DocumentCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"HasherSync\": {\n \"$comment\": \"(data: string | ArrayBuffer, alg: string) => Uint8Array\",\n \"type\": \"object\",\n \"properties\": {\n \"namedArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/ArrayBuffer\"\n }\n ]\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"data\", \"alg\"],\n \"additionalProperties\": false\n }\n }\n },\n \"ArrayBuffer\": {\n \"type\": \"object\",\n \"properties\": {\n \"byteLength\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"byteLength\"],\n \"additionalProperties\": false\n },\n \"VerificationPolicies\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemaValidation\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"credentialStatus\": {\n \"type\": \"boolean\"\n },\n \"expirationDate\": {\n \"type\": \"boolean\"\n },\n \"issuanceDate\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"expirationDate\", \"issuanceDate\"],\n \"additionalProperties\": false\n },\n \"SchemaValidation\": {\n \"type\": \"string\",\n \"enum\": [\"ALWAYS\", \"NEVER\", \"WHEN_PRESENT\"]\n },\n \"VerificationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"source\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiablePresentation\"\n }\n ]\n },\n \"subResults\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationSubResult\"\n }\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\", \"source\", \"subResults\"],\n \"additionalProperties\": false\n },\n \"WrappedVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n }\n ]\n },\n \"WrappedW3CVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n }\n ],\n \"description\": \"Original VC that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n }\n ],\n \"description\": \"In case of JWT credential it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this credential. Supported types are json-ld, jwt (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vc\", \"ldp_vc\", \"ldp\", \"jwt\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"OriginalType.JSONLD\": {\n \"type\": \"string\",\n \"const\": \"json-ld\"\n },\n \"OriginalType.JWT_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-encoded\"\n },\n \"OriginalType.JWT_DECODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-decoded\"\n },\n \"WrappedSdJwtVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VC that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT as the `decoded` property is used in e.g. PEX to check for path filters from fields. The full decoded credential can be found in the `credential` field.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"vc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"CompactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"OriginalType.SD_JWT_VC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-decoded\"\n },\n \"OriginalType.SD_JWT_VC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-encoded\"\n },\n \"WrappedMdocCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n }\n ],\n \"description\": \"Original IssuerSigned to Mdoc that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDecodedPayload\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/MdocDocument\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"MdocDecodedPayload\": {\n \"$ref\": \"#/components/schemas/Record<string,Record<string,(string|number|boolean)>>\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"Record<string,Record<string,(string|number|boolean)>>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/Record<string,(string|number|boolean)>\"\n }\n },\n \"Record<string,(string|number|boolean)>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": [\"string\", \"number\", \"boolean\"]\n }\n },\n \"OriginalType.MSO_MDOC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-decoded\"\n },\n \"OriginalType.MSO_MDOC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-encoded\"\n },\n \"WrappedVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocPresentation\"\n }\n ]\n },\n \"WrappedW3CVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n }\n ],\n \"description\": \"Original VP that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n }\n ],\n \"description\": \"In case of JWT VP it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation. Supported types are json-ld and jwt (decoded/encoded) and sd-jwt-vc (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vp\", \"ldp_vp\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/UniformVerifiablePresentation\",\n \"description\": \"Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"W3CVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n },\n \"verifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"proof\"]\n },\n \"PresentationSubmission\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Submission\"\n },\n \"definition_id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Definition\"\n },\n \"descriptor_map\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"description\": \"List of descriptors of how the claims are being mapped to presentation definition\"\n }\n },\n \"required\": [\"id\", \"definition_id\", \"descriptor_map\"],\n \"additionalProperties\": false,\n \"description\": \"It expresses how the inputs are presented as proofs to a Verifier.\"\n },\n \"Descriptor\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to identify the descriptor from Presentation Definition Input Descriptor it coresponds to.\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The path where the verifiable credential is located in the presentation submission json\"\n },\n \"path_nested\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"The Proof or JWT algorith that the proof is in\"\n }\n },\n \"required\": [\"id\", \"path\", \"format\"],\n \"additionalProperties\": false,\n \"description\": \"descriptor map laying out the structure of the presentation submission.\"\n },\n \"JwtDecodedVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"vp\": {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vp\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\", \"aud\", \"iat\"]\n },\n \"UniformVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"type\", \"verifiableCredential\"],\n \"additionalProperties\": false\n },\n \"WrappedSdJwtVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"vc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n \"minItems\": 1,\n \"maxItems\": 1,\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation. Will always be an array with a single SdJwtVerifiableCredential entry.\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"WrappedMdocPresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpMdocVpToken\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n },\n \"description\": \"Wrapped Mdocs belonging to the Presentation. There can be multiple documents in a single device response\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"MdocDeviceResponse\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DeviceResponseCbor\"\n },\n \"com.sphereon.mdoc.data.device.DeviceResponseCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"MdocOid4vpMdocVpToken\": {\n \"type\": \"string\"\n },\n \"VerificationSubResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\"],\n \"additionalProperties\": false\n },\n \"VerifyMdocCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"ValidateSchemaArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"validationPolicy\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifySDJWTCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifyW3CCredentialArgs\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"cvVerifyCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyMdoc\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyMdocCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySchema\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ValidateSchemaArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySDJWTCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifySDJWTCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyW3CCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyW3CCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n }\n }\n }\n }\n}\n","import { com } from '@sphereon/kmp-mdoc-core'\nimport { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'\nimport {\n CredentialMapper,\n ICoseKeyJson,\n ICredentialSchemaType,\n IVerifyResult,\n OriginalVerifiableCredential,\n WrappedVerifiableCredential,\n} from '@sphereon/ssi-types'\nimport { IAgentPlugin, IVerifyCredentialArgs, W3CVerifiableCredential as VeramoW3CVerifiableCredential } from '@veramo/core'\nimport addFormats from 'ajv-formats'\nimport Ajv2020 from 'ajv/dist/2020'\nimport fetch from 'cross-fetch'\nimport {\n CredentialVerificationError,\n ICredentialValidation,\n RequiredContext,\n schema,\n SchemaValidation,\n ValidateSchemaArgs,\n VerificationResult,\n VerificationSubResult,\n VerifyCredentialArgs,\n VerifyMdocCredentialArgs,\n VerifySDJWTCredentialArgs,\n} from '../index'\nimport IVerifySignatureResult = com.sphereon.crypto.generic.IVerifySignatureResult\nimport decodeFrom = com.sphereon.kmp.decodeFrom\nimport IssuerSignedCbor = com.sphereon.mdoc.data.device.IssuerSignedCbor\nimport { defaultHasher } from '@sphereon/ssi-sdk.core'\n\n// Exposing the methods here for any REST implementation\nexport const credentialValidationMethods: Array<string> = [\n 'cvVerifyCredential',\n 'cvVerifySchema',\n 'cvVerifyMdoc',\n 'cvVerifySDJWTCredential',\n 'cvVerifyW3CCredential',\n]\n\n/**\n * {@inheritDoc ICredentialValidation}\n */\nexport class CredentialValidation implements IAgentPlugin {\n readonly schema = schema.ICredentialValidation\n readonly methods: ICredentialValidation = {\n cvVerifyCredential: this.cvVerifyCredential.bind(this),\n cvVerifySchema: this.cvVerifySchema.bind(this),\n cvVerifyMdoc: this.cvVerifyMdoc.bind(this),\n cvVerifySDJWTCredential: this.cvVerifySDJWTCredential.bind(this),\n cvVerifyW3CCredential: this.cvVerifyW3CCredential.bind(this),\n }\n\n private detectSchemas(wrappedVC: WrappedVerifiableCredential): ICredentialSchemaType[] | undefined {\n if ('credential' in wrappedVC) {\n const { credential } = wrappedVC\n\n if ('credentialSchema' in credential) {\n const { credentialSchema } = credential\n\n if (Array.isArray(credentialSchema)) {\n return credentialSchema\n } else if (credentialSchema) {\n return [credentialSchema]\n }\n }\n }\n\n return undefined\n }\n\n private async cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, policies } = args\n // defaulting the schema validation to when_present\n const schemaResult = await this.cvVerifySchema({\n credential,\n validationPolicy: policies?.schemaValidation ?? SchemaValidation.WHEN_PRESENT,\n hasher,\n })\n if (!schemaResult.result) {\n return schemaResult\n }\n if (CredentialMapper.isMsoMdocOid4VPEncoded(credential)) {\n return await this.cvVerifyMdoc({ credential }, context)\n } else if (CredentialMapper.isSdJwtEncoded(credential)) {\n return await this.cvVerifySDJWTCredential({ credential, hasher }, context)\n } else {\n return await this.cvVerifyW3CCredential(\n {\n ...args,\n credential: credential as VeramoW3CVerifiableCredential,\n },\n context,\n )\n }\n }\n\n private async cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, validationPolicy } = args\n const wrappedCredential: WrappedVerifiableCredential = CredentialMapper.toWrappedVerifiableCredential(credential, { hasher })\n if (validationPolicy === SchemaValidation.NEVER) {\n return {\n result: true,\n source: wrappedCredential,\n subResults: [],\n }\n }\n return this.validateSchema(wrappedCredential, validationPolicy)\n }\n\n private async validateSchema(wrappedVC: WrappedVerifiableCredential, validationPolicy?: SchemaValidation): Promise<VerificationResult> {\n const schemas: ICredentialSchemaType[] | undefined = this.detectSchemas(wrappedVC)\n if (!schemas) {\n if (validationPolicy === SchemaValidation.ALWAYS) {\n console.error(\n `No schema found for credential, but validation policy is set to ALWAYS. Returning false. Credential: ${JSON.stringify(wrappedVC.credential, null, 2)}`,\n )\n return {\n result: false,\n source: wrappedVC,\n subResults: [],\n }\n } else {\n return {\n result: true,\n source: wrappedVC,\n subResults: [],\n }\n }\n }\n\n const subResults: VerificationSubResult[] = await Promise.all(schemas.map((schema) => this.verifyCredentialAgainstSchema(wrappedVC, schema)))\n\n return {\n result: subResults.every((subResult) => subResult.result),\n source: wrappedVC,\n subResults,\n }\n }\n\n private async fetchSchema(uri: string) {\n const response = await fetch(uri)\n if (!response.ok) {\n throw new Error(`Unable to fetch schema from ${uri}`)\n }\n return response.json()\n }\n\n private async verifyCredentialAgainstSchema(wrappedVC: WrappedVerifiableCredential, schema: ICredentialSchemaType): Promise<VerificationSubResult> {\n const schemaUrl: string = typeof schema === 'string' ? schema : schema.id\n let schemaValue\n try {\n schemaValue = await this.fetchSchema(schemaUrl)\n } catch (error) {\n console.error(error)\n return {\n result: false,\n error: error,\n }\n }\n\n const ajv = new Ajv2020({ loadSchema: this.fetchSchema })\n addFormats(ajv)\n\n const validate = await ajv.compileAsync(schemaValue)\n const valid = validate(wrappedVC.credential)\n if (!valid) {\n console.error(`Schema validation failed for `, wrappedVC.credential)\n }\n return {\n result: valid,\n }\n }\n\n private async cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential } = args\n\n const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL))\n\n const verification = await context.agent.mdocVerifyIssuerSigned({ input: issuerSigned.toJson().issuerAuth }).catch((error: Error) => {\n console.error(error)\n return {\n name: 'mdoc',\n critical: true,\n error: true,\n message: error.message ?? 'Mdoc Issuer Signed VC could not be verified',\n } satisfies IVerifySignatureResult<ICoseKeyJson>\n })\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: !verification.error,\n subResults: [],\n ...(verification.error && {\n error: verification.message ?? `Could not verify mdoc from issuer`,\n }),\n }\n }\n\n private async cvVerifyW3CCredential(args: IVerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n // We also allow/add boolean, because 4.x Veramo returns a boolean for JWTs. 5.X will return better results\n const { credential, policies } = args\n\n const result: IVerifyResult | boolean = (await context.agent.verifyCredential(args)) as IVerifyResult | boolean\n\n if (typeof result === 'boolean') {\n return {\n // FIXME the source is never used, need to start using this as the source of truth\n source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result,\n ...(!result && {\n error: 'Invalid JWT VC',\n errorDetails: `JWT VC was not valid with policies: ${JSON.stringify(policies)}`,\n }),\n subResults: [],\n }\n } else {\n // TODO look at what this is doing and make it simple and readable\n let error: string | undefined\n let errorDetails: string | undefined\n const subResults: Array<VerificationSubResult> = []\n if (result.error) {\n error = result.error?.message ?? ''\n errorDetails = result.error?.details?.code ?? ''\n errorDetails = (errorDetails !== '' ? `${errorDetails}, ` : '') + (result.error?.details?.url ?? '')\n if (result.error?.errors) {\n error = (error !== '' ? `${error}, ` : '') + result.error?.errors?.map((error) => error.message ?? error.name).join(', ')\n errorDetails =\n (errorDetails !== '' ? `${errorDetails}, ` : '') +\n result.error?.errors?.map((error) => (error?.details?.code ? `${error.details.code}, ` : '') + (error?.details?.url ?? '')).join(', ')\n }\n console.error(error)\n }\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: result.verified,\n subResults,\n error,\n errorDetails,\n }\n }\n }\n\n private async cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher } = args\n\n const verification: IVerifySdJwtVcResult | CredentialVerificationError = await context.agent\n .verifySdJwtVc({ credential })\n .catch((error: Error): CredentialVerificationError => {\n console.error(error)\n return {\n error: 'Invalid SD-JWT VC',\n errorDetails: error.message ?? 'SD-JWT VC could not be verified',\n }\n })\n\n const result = 'header' in verification && 'payload' in verification\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: hasher ?? defaultHasher }),\n result,\n subResults: [],\n ...(!result && { ...verification }),\n }\n }\n}\n","import { IAgentContext, ICredentialVerifier, IPluginMethodMap } from '@veramo/core'\nimport { HasherSync, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '@sphereon/ssi-types'\nimport { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc'\nimport { OriginalVerifiableCredential } from '@sphereon/ssi-types'\n\nexport interface ICredentialValidation extends IPluginMethodMap {\n cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult>\n cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifyW3CCredential(args: VerifyW3CCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n}\n\nexport enum SchemaValidation {\n ALWAYS = 'ALWAYS',\n NEVER = 'NEVER',\n WHEN_PRESENT = 'WHEN_PRESENT',\n}\n\nexport type VerifyCredentialArgs = {\n credential: OriginalVerifiableCredential\n hasher?: HasherSync\n fetchRemoteContexts: boolean\n policies?: VerificationPolicies\n}\n\nexport type VerificationPolicies = {\n schemaValidation?: SchemaValidation\n credentialStatus?: boolean\n expirationDate: boolean\n issuanceDate: boolean\n}\n\nexport type ValidateSchemaArgs = {\n credential: OriginalVerifiableCredential\n validationPolicy?: SchemaValidation\n hasher?: HasherSync\n}\n\nexport type VerifyMdocCredentialArgs = { credential: string }\n\nexport type VerifySDJWTCredentialArgs = {\n credential: string\n hasher?: HasherSync\n}\n\nexport type VerifyW3CCredentialArgs = {}\n\nexport type VerificationResult = {\n result: boolean\n source: WrappedVerifiableCredential | WrappedVerifiablePresentation\n subResults: Array<VerificationSubResult>\n error?: string | undefined\n errorDetails?: string\n}\n\nexport type VerificationSubResult = {\n result: boolean\n error?: string\n errorDetails?: string\n}\n\nexport type CredentialVerificationError = {\n error?: string\n errorDetails?: string\n}\n\nexport type RequiredContext = IAgentContext<ImDLMdoc & ICredentialVerifier>\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { CredentialValidation, credentialValidationMethods } from './agent/CredentialValidation'\nexport * from './types/ICredentialValidation'\n"],"mappings":"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","names":["com","CredentialMapper","addFormats","Ajv2020","fetch","defaultHasher","decodeFrom","IssuerSignedCbor","credentialValidationMethods","CredentialValidation","schema","ICredentialValidation","methods","cvVerifyCredential","bind","cvVerifySchema","cvVerifyMdoc","cvVerifySDJWTCredential","cvVerifyW3CCredential","detectSchemas","wrappedVC","credential","credentialSchema","Array","isArray","undefined","args","context","hasher","defaultHasher","policies","schemaResult","validationPolicy","schemaValidation","SchemaValidation","WHEN_PRESENT","result","CredentialMapper","isMsoMdocOid4VPEncoded","isSdJwtEncoded","wrappedCredential","toWrappedVerifiableCredential","NEVER","source","subResults","validateSchema","schemas","ALWAYS","console","error","JSON","stringify","Promise","all","map","verifyCredentialAgainstSchema","every","subResult","fetchSchema","uri","response","fetch","ok","Error","json","schemaUrl","id","schemaValue","ajv","Ajv2020","loadSchema","addFormats","validate","compileAsync","valid","issuerSigned","Static","cborDecode","com","sphereon","kmp","Encoding","BASE64URL","verification","agent","mdocVerifyIssuerSigned","input","toJson","issuerAuth","catch","name","critical","message","verifyCredential","errorDetails","details","code","url","errors","join","verified","verifySdJwtVc","SchemaValidation","schema","require"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/agent/CredentialValidation.ts","../src/types/ICredentialValidation.ts","../src/index.ts"],"sourcesContent":["{\n \"ICredentialValidation\": {\n \"components\": {\n \"schemas\": {\n \"VerifyCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n },\n \"fetchRemoteContexts\": {\n \"type\": \"boolean\"\n },\n \"policies\": {\n \"$ref\": \"#/components/schemas/VerificationPolicies\"\n }\n },\n \"required\": [\"credential\", \"fetchRemoteContexts\"],\n \"additionalProperties\": false\n },\n \"OriginalVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n }\n ]\n },\n \"W3CVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Credential (includes proof), in either JSON, compact JWT or compact SD-JWT VC format. See {@link https://www.w3.org/TR/vc-data-model/#credentials | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"credentialSchema\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialSchemaType\"\n }\n }\n ]\n },\n \"issuer\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIssuerId\"\n },\n {\n \"$ref\": \"#/components/schemas/IIssuer\"\n }\n ]\n },\n \"issuanceDate\": {\n \"type\": \"string\"\n },\n \"credentialSubject\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n }\n }\n }\n ]\n },\n \"expirationDate\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"credentialStatus\": {\n \"$ref\": \"#/components/schemas/ICredentialStatus\"\n },\n \"description\": {\n \"type\": \"string\"\n },\n \"name\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"credentialSubject\", \"issuanceDate\", \"issuer\", \"proof\", \"type\"]\n },\n \"IProof\": {\n \"type\": \"object\",\n \"properties\": {\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofType\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"created\": {\n \"type\": \"string\"\n },\n \"proofPurpose\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProofPurpose\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"string\"\n },\n \"challenge\": {\n \"type\": \"string\"\n },\n \"domain\": {\n \"type\": \"string\"\n },\n \"proofValue\": {\n \"type\": \"string\"\n },\n \"jws\": {\n \"type\": \"string\"\n },\n \"jwt\": {\n \"type\": \"string\"\n },\n \"mso_mdoc\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"requiredRevealStatements\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\"type\", \"created\", \"proofPurpose\", \"verificationMethod\"]\n },\n \"IProofType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519Signature2018\",\n \"Ed25519Signature2020\",\n \"EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256k1RecoverySignature2020\",\n \"JsonWebSignature2020\",\n \"RsaSignature2018\",\n \"GpgSignature2020\",\n \"JcsEd25519Signature2020\",\n \"BbsBlsSignatureProof2020\",\n \"BbsBlsBoundSignatureProof2020\",\n \"JwtProof2020\",\n \"SdJwtProof2024\",\n \"MsoMdocProof2024\"\n ]\n },\n \"IProofPurpose\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"assertionMethod\",\n \"authentication\",\n \"keyAgreement\",\n \"contactAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ]\n },\n \"ICredentialContextType\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\"\n },\n \"did\": {\n \"type\": \"string\"\n }\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchemaType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialSchema\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"ICredentialSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"],\n \"additionalProperties\": false\n },\n \"IIssuerId\": {\n \"type\": \"string\"\n },\n \"IIssuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\"]\n },\n \"ICredentialStatus\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"id\", \"type\"]\n },\n \"CompactJWT\": {\n \"type\": \"string\",\n \"description\": \"Represents a Json Web Token in compact form.\"\n },\n \"JwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"vc\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vc\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\"]\n },\n \"SdJwtDecodedVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"compactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"The compact sd jwt is the sd-jwt encoded as string. It is a normal JWT, with the disclosures and kb-jwt appended separated by ~\"\n },\n \"disclosures\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SdJwtDisclosure\"\n },\n \"description\": \"The disclosures included within the SD-JWT in both encoded and decoded format. The digests are also included, and allows the disclosures to be linked against the digests in the signed payload.\"\n },\n \"signedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtSignedVerifiableCredentialPayload\",\n \"description\": \"The signed payload is the payload of the sd-jwt that is actually signed, and that includes the `_sd` and `...` digests.\"\n },\n \"decodedPayload\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"The decoded payload is the payload when all `_sd` and `...` digests have been replaced by the actual values from the disclosures. This format could also be seen as the 'pretty` version of the SD JWT payload.\\n\\nThis is useful for displaying the contents of the SD JWT VC to the user, or for example for querying the contents of the SD JWT VC using a PEX presentation definition path.\"\n },\n \"kbJwt\": {\n \"type\": \"object\",\n \"properties\": {\n \"header\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtHeader\"\n },\n \"payload\": {\n \"$ref\": \"#/components/schemas/SdJwtVcKbJwtPayload\"\n },\n \"compact\": {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n },\n \"required\": [\"header\", \"payload\"],\n \"additionalProperties\": false,\n \"description\": \"Key binding JWT\"\n }\n },\n \"required\": [\"compactSdJwtVc\", \"disclosures\", \"signedPayload\", \"decodedPayload\"],\n \"additionalProperties\": false,\n \"description\": \"The decoded SD JWT Verifiable Credential. This representation includes multiple representations of the same SD-JWT, and allows to fully process an SD-JWT, as well as create a presentation SD-JWT (minus the KB-JWT) by removing certain disclosures from the compact SD-JWT.\\n\\nThis representation is useful as it doesn't require a hasher implementation to match the different digests in the signed SD-JWT payload, with the different disclosures.\"\n },\n \"SdJwtDisclosure\": {\n \"type\": \"object\",\n \"properties\": {\n \"encoded\": {\n \"type\": \"string\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedDisclosure\"\n },\n \"digest\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"encoded\", \"decoded\", \"digest\"],\n \"additionalProperties\": false\n },\n \"SdJwtDecodedDisclosure\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"minItems\": 3,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 3\n },\n {\n \"type\": \"array\",\n \"minItems\": 2,\n \"items\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n ],\n \"maxItems\": 2\n }\n ]\n },\n \"JsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JsonValue\"\n }\n }\n ]\n },\n \"SdJwtSignedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"_sd_alg\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n },\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"required\": [\"iat\", \"iss\", \"vct\"],\n \"description\": \"The signed payload of an SD-JWT. Includes fields such as `_sd`, `...` and `_sd_alg`\"\n },\n \"SdJwtJsonValue\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"number\"\n },\n {\n \"type\": \"boolean\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"_sd\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n }\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtJsonValue\"\n },\n {\n \"type\": \"object\",\n \"properties\": {\n \"...\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"...\"],\n \"additionalProperties\": false\n }\n ]\n }\n }\n ]\n },\n \"SdJwtDecodedVerifiableCredentialPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"vct\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"cnf\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {},\n \"kid\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n },\n \"status\": {\n \"type\": \"object\",\n \"properties\": {\n \"idx\": {\n \"type\": \"number\"\n },\n \"uri\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"idx\", \"uri\"],\n \"additionalProperties\": false\n },\n \"sub\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vct\", \"iss\", \"iat\"],\n \"additionalProperties\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JsonValue\"\n },\n {\n \"not\": {}\n }\n ]\n },\n \"description\": \"Decoded 'pretty' SD JWT Verifiable Credential. This representation has all the `_sd` properties removed, and includes the disclosures directly within the payload.\"\n },\n \"SdJwtVcKbJwtHeader\": {\n \"type\": \"object\",\n \"properties\": {\n \"typ\": {\n \"type\": \"string\",\n \"const\": \"kb+jwt\"\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"typ\", \"alg\"]\n },\n \"SdJwtVcKbJwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iat\": {\n \"type\": \"number\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"nonce\": {\n \"type\": \"string\"\n },\n \"sd_hash\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"iat\", \"aud\", \"nonce\", \"sd_hash\"],\n \"additionalProperties\": {}\n },\n \"MdocOid4vpIssuerSigned\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"MdocDocument\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DocumentCbor\"\n },\n \"com.sphereon.mdoc.data.device.DocumentCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"HasherSync\": {\n \"$comment\": \"(data: string | ArrayBuffer, alg: string) => Uint8Array\",\n \"type\": \"object\",\n \"properties\": {\n \"namedArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"data\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/ArrayBuffer\"\n }\n ]\n },\n \"alg\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"data\", \"alg\"],\n \"additionalProperties\": false\n }\n }\n },\n \"ArrayBuffer\": {\n \"type\": \"object\",\n \"properties\": {\n \"byteLength\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\"byteLength\"],\n \"additionalProperties\": false\n },\n \"VerificationPolicies\": {\n \"type\": \"object\",\n \"properties\": {\n \"schemaValidation\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"credentialStatus\": {\n \"type\": \"boolean\"\n },\n \"expirationDate\": {\n \"type\": \"boolean\"\n },\n \"issuanceDate\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\"expirationDate\", \"issuanceDate\"],\n \"additionalProperties\": false\n },\n \"SchemaValidation\": {\n \"type\": \"string\",\n \"enum\": [\"ALWAYS\", \"NEVER\", \"WHEN_PRESENT\"]\n },\n \"VerificationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"source\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedVerifiablePresentation\"\n }\n ]\n },\n \"subResults\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationSubResult\"\n }\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\", \"source\", \"subResults\"],\n \"additionalProperties\": false\n },\n \"WrappedVerifiableCredential\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n }\n ]\n },\n \"WrappedW3CVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n }\n ],\n \"description\": \"Original VC that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\"\n }\n ],\n \"description\": \"In case of JWT credential it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this credential. Supported types are json-ld, jwt (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vc\", \"ldp_vc\", \"ldp\", \"jwt\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/IVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"OriginalType.JSONLD\": {\n \"type\": \"string\",\n \"const\": \"json-ld\"\n },\n \"OriginalType.JWT_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-encoded\"\n },\n \"OriginalType.JWT_DECODED\": {\n \"type\": \"string\",\n \"const\": \"jwt-decoded\"\n },\n \"WrappedSdJwtVerifiableCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VC that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT as the `decoded` property is used in e.g. PEX to check for path filters from fields. The full decoded credential can be found in the `credential` field.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"vc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"CompactSdJwtVc\": {\n \"type\": \"string\",\n \"description\": \"Represents a selective disclosure JWT vc in compact form.\"\n },\n \"OriginalType.SD_JWT_VC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-decoded\"\n },\n \"OriginalType.SD_JWT_VC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"sd-jwt-vc-encoded\"\n },\n \"WrappedMdocCredential\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDocument\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpIssuerSigned\"\n }\n ],\n \"description\": \"Original IssuerSigned to Mdoc that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDecodedPayload\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n }\n ],\n \"description\": \"Type of this credential.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"credential\": {\n \"$ref\": \"#/components/schemas/MdocDocument\",\n \"description\": \"Internal stable representation of a Credential\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"credential\"],\n \"additionalProperties\": false\n },\n \"MdocDecodedPayload\": {\n \"$ref\": \"#/components/schemas/Record<string,Record<string,(string|number|boolean)>>\",\n \"description\": \"Record where keys are the namespaces and the values are objects again with the namespace values\"\n },\n \"Record<string,Record<string,(string|number|boolean)>>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/Record<string,(string|number|boolean)>\"\n }\n },\n \"Record<string,(string|number|boolean)>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": [\"string\", \"number\", \"boolean\"]\n }\n },\n \"OriginalType.MSO_MDOC_DECODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-decoded\"\n },\n \"OriginalType.MSO_MDOC_ENCODED\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc-encoded\"\n },\n \"WrappedVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/WrappedMdocPresentation\"\n }\n ]\n },\n \"WrappedW3CVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/W3CVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n }\n ],\n \"description\": \"Original VP that we've received\"\n },\n \"decoded\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwtDecodedVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n }\n ],\n \"description\": \"In case of JWT VP it will be the decoded version. In other cases it will be the same as original one\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.JSONLD\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.JWT_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation. Supported types are json-ld and jwt (decoded/encoded) and sd-jwt-vc (decoded/encoded)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"enum\": [\"jwt_vp\", \"ldp_vp\"],\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/UniformVerifiablePresentation\",\n \"description\": \"Internal stable representation of a Presentation without proofs, created based on https://www.w3.org/TR/vc-data-model/#jwt-decoding\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n },\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"W3CVerifiablePresentation\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactJWT\"\n }\n ],\n \"description\": \"Represents a signed Verifiable Presentation (includes proof), in either JSON or compact JWT format. See {@link https://www.w3.org/TR/vc-data-model/#presentations | VC data model } See {@link https://www.w3.org/TR/vc-data-model/#proof-formats | proof formats }\"\n },\n \"IVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"proof\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IProof\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IProof\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/W3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n },\n \"verifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"proof\"]\n },\n \"PresentationSubmission\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Submission\"\n },\n \"definition_id\": {\n \"type\": \"string\",\n \"description\": \"A UUID or some other unique ID to identify this Presentation Definition\"\n },\n \"descriptor_map\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"description\": \"List of descriptors of how the claims are being mapped to presentation definition\"\n }\n },\n \"required\": [\"id\", \"definition_id\", \"descriptor_map\"],\n \"additionalProperties\": false,\n \"description\": \"It expresses how the inputs are presented as proofs to a Verifier.\"\n },\n \"Descriptor\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID to identify the descriptor from Presentation Definition Input Descriptor it coresponds to.\"\n },\n \"path\": {\n \"type\": \"string\",\n \"description\": \"The path where the verifiable credential is located in the presentation submission json\"\n },\n \"path_nested\": {\n \"$ref\": \"#/components/schemas/Descriptor\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"The Proof or JWT algorith that the proof is in\"\n }\n },\n \"required\": [\"id\", \"path\", \"format\"],\n \"additionalProperties\": false,\n \"description\": \"descriptor map laying out the structure of the presentation submission.\"\n },\n \"JwtDecodedVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"vp\": {\n \"$ref\": \"#/components/schemas/IVerifiablePresentation\"\n },\n \"exp\": {\n \"type\": \"string\"\n },\n \"iss\": {\n \"type\": \"string\"\n },\n \"nbf\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"jti\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"type\": \"string\"\n },\n \"iat\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"vp\", \"exp\", \"iss\", \"nbf\", \"sub\", \"jti\", \"aud\", \"iat\"]\n },\n \"UniformVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICredentialContextType\"\n }\n }\n ]\n },\n \"type\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verifiableCredential\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedW3CVerifiableCredential\"\n }\n },\n \"presentation_submission\": {\n \"$ref\": \"#/components/schemas/PresentationSubmission\"\n },\n \"holder\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"@context\", \"type\", \"verifiableCredential\"],\n \"additionalProperties\": false\n },\n \"WrappedSdJwtVerifiablePresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\"\n },\n {\n \"$ref\": \"#/components/schemas/CompactSdJwtVc\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredentialPayload\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_DECODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.SD_JWT_VC_ENCODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"vc+sd-jwt\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/SdJwtDecodedVerifiableCredential\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedSdJwtVerifiableCredential\"\n },\n \"minItems\": 1,\n \"maxItems\": 1,\n \"description\": \"Wrapped Verifiable Credentials belonging to the Presentation. Will always be an array with a single SdJwtVerifiableCredential entry.\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"WrappedMdocPresentation\": {\n \"type\": \"object\",\n \"properties\": {\n \"original\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\"\n },\n {\n \"$ref\": \"#/components/schemas/MdocOid4vpMdocVpToken\"\n }\n ],\n \"description\": \"Original VP that we've received. Can be either the encoded or decoded variant.\"\n },\n \"decoded\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Decoded version of the SD-JWT payload. This is the decoded payload, rather than the whole SD-JWT.\"\n },\n \"type\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_ENCODED\"\n },\n {\n \"$ref\": \"#/components/schemas/OriginalType.MSO_MDOC_DECODED\"\n }\n ],\n \"description\": \"Type of this Presentation.\"\n },\n \"format\": {\n \"type\": \"string\",\n \"const\": \"mso_mdoc\",\n \"description\": \"The claim format, typically used during exchange transport protocols\"\n },\n \"presentation\": {\n \"$ref\": \"#/components/schemas/MdocDeviceResponse\",\n \"description\": \"Internal stable representation of a Presentation\"\n },\n \"vcs\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/WrappedMdocCredential\"\n },\n \"description\": \"Wrapped Mdocs belonging to the Presentation. There can be multiple documents in a single device response\"\n }\n },\n \"required\": [\"original\", \"decoded\", \"type\", \"format\", \"presentation\", \"vcs\"],\n \"additionalProperties\": false\n },\n \"MdocDeviceResponse\": {\n \"$ref\": \"#/components/schemas/com.sphereon.mdoc.data.device.DeviceResponseCbor\"\n },\n \"com.sphereon.mdoc.data.device.DeviceResponseCbor\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {}\n },\n \"MdocOid4vpMdocVpToken\": {\n \"type\": \"string\"\n },\n \"VerificationSubResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"result\": {\n \"type\": \"boolean\"\n },\n \"error\": {\n \"type\": \"string\"\n },\n \"errorDetails\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"result\"],\n \"additionalProperties\": false\n },\n \"VerifyMdocCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"ValidateSchemaArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"$ref\": \"#/components/schemas/OriginalVerifiableCredential\"\n },\n \"validationPolicy\": {\n \"$ref\": \"#/components/schemas/SchemaValidation\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifySDJWTCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"credential\": {\n \"type\": \"string\"\n },\n \"hasher\": {\n \"$ref\": \"#/components/schemas/HasherSync\"\n }\n },\n \"required\": [\"credential\"],\n \"additionalProperties\": false\n },\n \"VerifyW3CCredentialArgs\": {\n \"type\": \"object\",\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"cvVerifyCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyMdoc\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyMdocCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySchema\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ValidateSchemaArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifySDJWTCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifySDJWTCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n },\n \"cvVerifyW3CCredential\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/VerifyW3CCredentialArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerificationResult\"\n }\n }\n }\n }\n }\n}\n","import mdocPkg from '@sphereon/kmp-mdoc-core'\nconst { com } = mdocPkg\nimport { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'\nimport {\n CredentialMapper,\n ICoseKeyJson,\n ICredentialSchemaType,\n IVerifyResult,\n OriginalVerifiableCredential,\n WrappedVerifiableCredential,\n} from '@sphereon/ssi-types'\nimport { IAgentPlugin, IVerifyCredentialArgs, W3CVerifiableCredential as VeramoW3CVerifiableCredential } from '@veramo/core'\nimport addFormats from 'ajv-formats'\nimport Ajv2020 from 'ajv/dist/2020'\nimport fetch from 'cross-fetch'\nimport {\n CredentialVerificationError,\n ICredentialValidation,\n RequiredContext,\n schema,\n SchemaValidation,\n ValidateSchemaArgs,\n VerificationResult,\n VerificationSubResult,\n VerifyCredentialArgs,\n VerifyMdocCredentialArgs,\n VerifySDJWTCredentialArgs,\n} from '../index'\nimport IVerifySignatureResult = mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult\nimport decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom\nimport IssuerSignedCbor = mdocPkg.com.sphereon.mdoc.data.device.IssuerSignedCbor\nimport { defaultHasher } from '@sphereon/ssi-sdk.core'\n\n// Exposing the methods here for any REST implementation\nexport const credentialValidationMethods: Array<string> = [\n 'cvVerifyCredential',\n 'cvVerifySchema',\n 'cvVerifyMdoc',\n 'cvVerifySDJWTCredential',\n 'cvVerifyW3CCredential',\n]\n\n/**\n * {@inheritDoc ICredentialValidation}\n */\nexport class CredentialValidation implements IAgentPlugin {\n readonly schema = schema.ICredentialValidation\n readonly methods: ICredentialValidation = {\n cvVerifyCredential: this.cvVerifyCredential.bind(this),\n cvVerifySchema: this.cvVerifySchema.bind(this),\n cvVerifyMdoc: this.cvVerifyMdoc.bind(this),\n cvVerifySDJWTCredential: this.cvVerifySDJWTCredential.bind(this),\n cvVerifyW3CCredential: this.cvVerifyW3CCredential.bind(this),\n }\n\n private detectSchemas(wrappedVC: WrappedVerifiableCredential): ICredentialSchemaType[] | undefined {\n if ('credential' in wrappedVC) {\n const { credential } = wrappedVC\n\n if ('credentialSchema' in credential) {\n const { credentialSchema } = credential\n\n if (Array.isArray(credentialSchema)) {\n return credentialSchema\n } else if (credentialSchema) {\n return [credentialSchema]\n }\n }\n }\n\n return undefined\n }\n\n private async cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, policies } = args\n // defaulting the schema validation to when_present\n const schemaResult = await this.cvVerifySchema({\n credential,\n validationPolicy: policies?.schemaValidation ?? SchemaValidation.WHEN_PRESENT,\n hasher,\n })\n if (!schemaResult.result) {\n return schemaResult\n }\n if (CredentialMapper.isMsoMdocOid4VPEncoded(credential)) {\n return await this.cvVerifyMdoc({ credential }, context)\n } else if (CredentialMapper.isSdJwtEncoded(credential)) {\n return await this.cvVerifySDJWTCredential({ credential, hasher }, context)\n } else {\n return await this.cvVerifyW3CCredential(\n {\n ...args,\n credential: credential as VeramoW3CVerifiableCredential,\n },\n context,\n )\n }\n }\n\n private async cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher, validationPolicy } = args\n const wrappedCredential: WrappedVerifiableCredential = CredentialMapper.toWrappedVerifiableCredential(credential, { hasher })\n if (validationPolicy === SchemaValidation.NEVER) {\n return {\n result: true,\n source: wrappedCredential,\n subResults: [],\n }\n }\n return this.validateSchema(wrappedCredential, validationPolicy)\n }\n\n private async validateSchema(wrappedVC: WrappedVerifiableCredential, validationPolicy?: SchemaValidation): Promise<VerificationResult> {\n const schemas: ICredentialSchemaType[] | undefined = this.detectSchemas(wrappedVC)\n if (!schemas) {\n if (validationPolicy === SchemaValidation.ALWAYS) {\n console.error(\n `No schema found for credential, but validation policy is set to ALWAYS. Returning false. Credential: ${JSON.stringify(wrappedVC.credential, null, 2)}`,\n )\n return {\n result: false,\n source: wrappedVC,\n subResults: [],\n }\n } else {\n return {\n result: true,\n source: wrappedVC,\n subResults: [],\n }\n }\n }\n\n const subResults: VerificationSubResult[] = await Promise.all(schemas.map((schema) => this.verifyCredentialAgainstSchema(wrappedVC, schema)))\n\n return {\n result: subResults.every((subResult) => subResult.result),\n source: wrappedVC,\n subResults,\n }\n }\n\n private async fetchSchema(uri: string) {\n const response = await fetch(uri)\n if (!response.ok) {\n throw new Error(`Unable to fetch schema from ${uri}`)\n }\n return response.json()\n }\n\n private async verifyCredentialAgainstSchema(wrappedVC: WrappedVerifiableCredential, schema: ICredentialSchemaType): Promise<VerificationSubResult> {\n const schemaUrl: string = typeof schema === 'string' ? schema : schema.id\n let schemaValue\n try {\n schemaValue = await this.fetchSchema(schemaUrl)\n } catch (error) {\n console.error(error)\n return {\n result: false,\n error: error,\n }\n }\n\n const ajv = new Ajv2020({ loadSchema: this.fetchSchema })\n addFormats(ajv)\n\n const validate = await ajv.compileAsync(schemaValue)\n const valid = validate(wrappedVC.credential)\n if (!valid) {\n console.error(`Schema validation failed for `, wrappedVC.credential)\n }\n return {\n result: valid,\n }\n }\n\n private async cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential } = args\n\n const issuerSigned = IssuerSignedCbor.Static.cborDecode(decodeFrom(credential, com.sphereon.kmp.Encoding.BASE64URL))\n\n const verification = await context.agent.mdocVerifyIssuerSigned({ input: issuerSigned.toJson().issuerAuth }).catch((error: Error) => {\n console.error(error)\n return {\n name: 'mdoc',\n critical: true,\n error: true,\n message: error.message ?? 'Mdoc Issuer Signed VC could not be verified',\n } satisfies IVerifySignatureResult<ICoseKeyJson>\n })\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: !verification.error,\n subResults: [],\n ...(verification.error && {\n error: verification.message ?? `Could not verify mdoc from issuer`,\n }),\n }\n }\n\n private async cvVerifyW3CCredential(args: IVerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n // We also allow/add boolean, because 4.x Veramo returns a boolean for JWTs. 5.X will return better results\n const { credential, policies } = args\n\n const result: IVerifyResult | boolean = (await context.agent.verifyCredential(args)) as IVerifyResult | boolean\n\n if (typeof result === 'boolean') {\n return {\n // FIXME the source is never used, need to start using this as the source of truth\n source: CredentialMapper.toWrappedVerifiableCredential(args.credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result,\n ...(!result && {\n error: 'Invalid JWT VC',\n errorDetails: `JWT VC was not valid with policies: ${JSON.stringify(policies)}`,\n }),\n subResults: [],\n }\n } else {\n // TODO look at what this is doing and make it simple and readable\n let error: string | undefined\n let errorDetails: string | undefined\n const subResults: Array<VerificationSubResult> = []\n if (result.error) {\n error = result.error?.message ?? ''\n errorDetails = result.error?.details?.code ?? ''\n errorDetails = (errorDetails !== '' ? `${errorDetails}, ` : '') + (result.error?.details?.url ?? '')\n if (result.error?.errors) {\n error = (error !== '' ? `${error}, ` : '') + result.error?.errors?.map((error) => error.message ?? error.name).join(', ')\n errorDetails =\n (errorDetails !== '' ? `${errorDetails}, ` : '') +\n result.error?.errors?.map((error) => (error?.details?.code ? `${error.details.code}, ` : '') + (error?.details?.url ?? '')).join(', ')\n }\n console.error(error)\n }\n\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: defaultHasher }),\n result: result.verified,\n subResults,\n error,\n errorDetails,\n }\n }\n }\n\n private async cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult> {\n const { credential, hasher = defaultHasher } = args\n\n const verification: IVerifySdJwtVcResult | CredentialVerificationError = await context.agent\n .verifySdJwtVc({ credential })\n .catch((error: Error): CredentialVerificationError => {\n console.error(error)\n return {\n error: 'Invalid SD-JWT VC',\n errorDetails: error.message ?? 'SD-JWT VC could not be verified',\n }\n })\n\n const result = 'header' in verification && 'payload' in verification\n return {\n source: CredentialMapper.toWrappedVerifiableCredential(credential as OriginalVerifiableCredential, { hasher: hasher ?? defaultHasher }),\n result,\n subResults: [],\n ...(!result && { ...verification }),\n }\n }\n}\n","import { IAgentContext, ICredentialVerifier, IPluginMethodMap } from '@veramo/core'\nimport { HasherSync, WrappedVerifiableCredential, WrappedVerifiablePresentation } from '@sphereon/ssi-types'\nimport { ImDLMdoc } from '@sphereon/ssi-sdk.mdl-mdoc'\nimport { OriginalVerifiableCredential } from '@sphereon/ssi-types'\n\nexport interface ICredentialValidation extends IPluginMethodMap {\n cvVerifyCredential(args: VerifyCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySchema(args: ValidateSchemaArgs): Promise<VerificationResult>\n cvVerifyMdoc(args: VerifyMdocCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifySDJWTCredential(args: VerifySDJWTCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n cvVerifyW3CCredential(args: VerifyW3CCredentialArgs, context: RequiredContext): Promise<VerificationResult>\n}\n\nexport enum SchemaValidation {\n ALWAYS = 'ALWAYS',\n NEVER = 'NEVER',\n WHEN_PRESENT = 'WHEN_PRESENT',\n}\n\nexport type VerifyCredentialArgs = {\n credential: OriginalVerifiableCredential\n hasher?: HasherSync\n fetchRemoteContexts: boolean\n policies?: VerificationPolicies\n}\n\nexport type VerificationPolicies = {\n schemaValidation?: SchemaValidation\n credentialStatus?: boolean\n expirationDate: boolean\n issuanceDate: boolean\n}\n\nexport type ValidateSchemaArgs = {\n credential: OriginalVerifiableCredential\n validationPolicy?: SchemaValidation\n hasher?: HasherSync\n}\n\nexport type VerifyMdocCredentialArgs = { credential: string }\n\nexport type VerifySDJWTCredentialArgs = {\n credential: string\n hasher?: HasherSync\n}\n\nexport type VerifyW3CCredentialArgs = {}\n\nexport type VerificationResult = {\n result: boolean\n source: WrappedVerifiableCredential | WrappedVerifiablePresentation\n subResults: Array<VerificationSubResult>\n error?: string | undefined\n errorDetails?: string\n}\n\nexport type VerificationSubResult = {\n result: boolean\n error?: string\n errorDetails?: string\n}\n\nexport type CredentialVerificationError = {\n error?: string\n errorDetails?: string\n}\n\nexport type RequiredContext = IAgentContext<ImDLMdoc & ICredentialVerifier>\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { CredentialValidation, credentialValidationMethods } from './agent/CredentialValidation'\nexport * from './types/ICredentialValidation'\n"],"mappings":"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","names":["mdocPkg","CredentialMapper","addFormats","Ajv2020","fetch","defaultHasher","com","mdocPkg","decodeFrom","IssuerSignedCbor","credentialValidationMethods","CredentialValidation","schema","ICredentialValidation","methods","cvVerifyCredential","bind","cvVerifySchema","cvVerifyMdoc","cvVerifySDJWTCredential","cvVerifyW3CCredential","detectSchemas","wrappedVC","credential","credentialSchema","Array","isArray","undefined","args","context","hasher","defaultHasher","policies","schemaResult","validationPolicy","schemaValidation","SchemaValidation","WHEN_PRESENT","result","CredentialMapper","isMsoMdocOid4VPEncoded","isSdJwtEncoded","wrappedCredential","toWrappedVerifiableCredential","NEVER","source","subResults","validateSchema","schemas","ALWAYS","console","error","JSON","stringify","Promise","all","map","verifyCredentialAgainstSchema","every","subResult","fetchSchema","uri","response","fetch","ok","Error","json","schemaUrl","id","schemaValue","ajv","Ajv2020","loadSchema","addFormats","validate","compileAsync","valid","issuerSigned","Static","cborDecode","sphereon","kmp","Encoding","BASE64URL","verification","agent","mdocVerifyIssuerSigned","input","toJson","issuerAuth","catch","name","critical","message","verifyCredential","errorDetails","details","code","url","errors","join","verified","verifySdJwtVc","SchemaValidation","schema","require"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.credential-validation",
3
- "version": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
3
+ "version": "0.34.1-fix.79+d10eff80",
4
4
  "source": "src/index.ts",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -28,23 +28,23 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@sphereon/kmp-mdoc-core": "0.2.0-SNAPSHOT.26",
31
- "@sphereon/ssi-sdk.agent-config": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
32
- "@sphereon/ssi-sdk.core": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
33
- "@sphereon/ssi-sdk.mdl-mdoc": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
34
- "@sphereon/ssi-sdk.sd-jwt": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
35
- "@sphereon/ssi-types": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
31
+ "@sphereon/ssi-sdk.agent-config": "0.34.1-fix.79+d10eff80",
32
+ "@sphereon/ssi-sdk.core": "0.34.1-fix.79+d10eff80",
33
+ "@sphereon/ssi-sdk.mdl-mdoc": "0.34.1-fix.79+d10eff80",
34
+ "@sphereon/ssi-sdk.sd-jwt": "0.34.1-fix.79+d10eff80",
35
+ "@sphereon/ssi-types": "0.34.1-fix.79+d10eff80",
36
36
  "@veramo/core": "4.2.0",
37
37
  "@veramo/data-store": "4.2.0",
38
38
  "@veramo/utils": "4.2.0",
39
39
  "ajv": "^8.17.1",
40
40
  "ajv-formats": "^3.0.1",
41
- "cross-fetch": "^3.1.8",
41
+ "cross-fetch": "^4.1.0",
42
42
  "debug": "^4.3.5",
43
43
  "typeorm": "0.3.20"
44
44
  },
45
45
  "devDependencies": {
46
- "@sphereon/ssi-sdk-ext.key-manager": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
47
- "@sphereon/ssi-sdk-ext.kms-local": "0.34.1-feature.merge.crypto.extensions.modules.39+dea3b6de",
46
+ "@sphereon/ssi-sdk-ext.key-manager": "0.34.1-fix.79+d10eff80",
47
+ "@sphereon/ssi-sdk-ext.kms-local": "0.34.1-fix.79+d10eff80",
48
48
  "@veramo/credential-w3c": "4.2.0",
49
49
  "@veramo/data-store": "4.2.0",
50
50
  "@veramo/did-manager": "4.2.0",
@@ -72,5 +72,5 @@
72
72
  "Credential",
73
73
  "VerifiableCredential"
74
74
  ],
75
- "gitHead": "dea3b6de7ecd726e67ce100337fba2ea968500af"
75
+ "gitHead": "d10eff8075537d257b9ec2188eed2c60315a5ce7"
76
76
  }
@@ -1,4 +1,5 @@
1
- import { com } from '@sphereon/kmp-mdoc-core'
1
+ import mdocPkg from '@sphereon/kmp-mdoc-core'
2
+ const { com } = mdocPkg
2
3
  import { IVerifySdJwtVcResult } from '@sphereon/ssi-sdk.sd-jwt'
3
4
  import {
4
5
  CredentialMapper,
@@ -25,9 +26,9 @@ import {
25
26
  VerifyMdocCredentialArgs,
26
27
  VerifySDJWTCredentialArgs,
27
28
  } from '../index'
28
- import IVerifySignatureResult = com.sphereon.crypto.generic.IVerifySignatureResult
29
- import decodeFrom = com.sphereon.kmp.decodeFrom
30
- import IssuerSignedCbor = com.sphereon.mdoc.data.device.IssuerSignedCbor
29
+ import IVerifySignatureResult = mdocPkg.com.sphereon.crypto.generic.IVerifySignatureResult
30
+ import decodeFrom = mdocPkg.com.sphereon.kmp.decodeFrom
31
+ import IssuerSignedCbor = mdocPkg.com.sphereon.mdoc.data.device.IssuerSignedCbor
31
32
  import { defaultHasher } from '@sphereon/ssi-sdk.core'
32
33
 
33
34
  // Exposing the methods here for any REST implementation