@sphereon/ssi-sdk.credential-validation 0.34.1-next.3 → 0.34.1-next.40
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 +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +10 -10
package/dist/index.cjs
CHANGED
|
@@ -1747,12 +1747,12 @@ var CredentialValidation = class {
|
|
|
1747
1747
|
};
|
|
1748
1748
|
|
|
1749
1749
|
// src/types/ICredentialValidation.ts
|
|
1750
|
-
var SchemaValidation = /* @__PURE__ */ function(SchemaValidation2) {
|
|
1750
|
+
var SchemaValidation = /* @__PURE__ */ (function(SchemaValidation2) {
|
|
1751
1751
|
SchemaValidation2["ALWAYS"] = "ALWAYS";
|
|
1752
1752
|
SchemaValidation2["NEVER"] = "NEVER";
|
|
1753
1753
|
SchemaValidation2["WHEN_PRESENT"] = "WHEN_PRESENT";
|
|
1754
1754
|
return SchemaValidation2;
|
|
1755
|
-
}({});
|
|
1755
|
+
})({});
|
|
1756
1756
|
|
|
1757
1757
|
// src/index.ts
|
|
1758
1758
|
var schema = require_plugin_schema();
|
package/dist/index.cjs.map
CHANGED
|
@@ -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 { 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"]}
|
package/dist/index.js
CHANGED
|
@@ -1711,12 +1711,12 @@ var CredentialValidation = class {
|
|
|
1711
1711
|
};
|
|
1712
1712
|
|
|
1713
1713
|
// src/types/ICredentialValidation.ts
|
|
1714
|
-
var SchemaValidation = /* @__PURE__ */ function(SchemaValidation2) {
|
|
1714
|
+
var SchemaValidation = /* @__PURE__ */ (function(SchemaValidation2) {
|
|
1715
1715
|
SchemaValidation2["ALWAYS"] = "ALWAYS";
|
|
1716
1716
|
SchemaValidation2["NEVER"] = "NEVER";
|
|
1717
1717
|
SchemaValidation2["WHEN_PRESENT"] = "WHEN_PRESENT";
|
|
1718
1718
|
return SchemaValidation2;
|
|
1719
|
-
}({});
|
|
1719
|
+
})({});
|
|
1720
1720
|
|
|
1721
1721
|
// src/index.ts
|
|
1722
1722
|
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 { 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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.credential-validation",
|
|
3
|
-
"version": "0.34.1-next.
|
|
3
|
+
"version": "0.34.1-next.40+16fd35c0",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -24,15 +24,15 @@
|
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"build": "tsup --config ../../tsup.config.ts --tsconfig ../../tsconfig.tsup.json",
|
|
27
|
-
"generate-plugin-schema": "
|
|
27
|
+
"generate-plugin-schema": "tsx ../../packages/dev/bin/sphereon.js dev generate-plugin-schema"
|
|
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-next.
|
|
32
|
-
"@sphereon/ssi-sdk.core": "0.34.1-next.
|
|
33
|
-
"@sphereon/ssi-sdk.mdl-mdoc": "0.34.1-next.
|
|
34
|
-
"@sphereon/ssi-sdk.sd-jwt": "0.34.1-next.
|
|
35
|
-
"@sphereon/ssi-types": "0.34.1-next.
|
|
31
|
+
"@sphereon/ssi-sdk.agent-config": "0.34.1-next.40+16fd35c0",
|
|
32
|
+
"@sphereon/ssi-sdk.core": "0.34.1-next.40+16fd35c0",
|
|
33
|
+
"@sphereon/ssi-sdk.mdl-mdoc": "0.34.1-next.40+16fd35c0",
|
|
34
|
+
"@sphereon/ssi-sdk.sd-jwt": "0.34.1-next.40+16fd35c0",
|
|
35
|
+
"@sphereon/ssi-types": "0.34.1-next.40+16fd35c0",
|
|
36
36
|
"@veramo/core": "4.2.0",
|
|
37
37
|
"@veramo/data-store": "4.2.0",
|
|
38
38
|
"@veramo/utils": "4.2.0",
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
"typeorm": "0.3.20"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@sphereon/ssi-sdk-ext.key-manager": "0.
|
|
47
|
-
"@sphereon/ssi-sdk-ext.kms-local": "0.
|
|
46
|
+
"@sphereon/ssi-sdk-ext.key-manager": "0.34.1-next.40+16fd35c0",
|
|
47
|
+
"@sphereon/ssi-sdk-ext.kms-local": "0.34.1-next.40+16fd35c0",
|
|
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": "
|
|
75
|
+
"gitHead": "16fd35c05f13688d8e2bbe4221d3dc3863dff176"
|
|
76
76
|
}
|