@sphereon/ssi-sdk.credential-vcdm-jsonld-provider 0.34.1-fix.80 → 0.34.1-next.278
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 +487 -487
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +486 -486
- package/dist/index.js.map +1 -1
- package/package.json +15 -14
- package/src/__tests__/restAgent.test.ts +1 -1
- package/src/ld-default-contexts.ts +11 -10
- package/src/ld-document-loader.ts +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/contexts/www.w3.org_2018_credentials_v1.json","../src/contexts/www.w3.org_ns_credentials_v2.json","../src/suites/Ed25519Signature2018.ts","../src/ld-suites.ts","../src/suites/Ed25519Signature2020.ts","../src/suites/EcdsaSecp256k1RecoverySignature2020.ts","../src/ld-credential-module.ts","../src/ld-document-loader.ts","../src/enums.ts","../src/ld-context-loader.ts","../src/ld-suite-loader.ts","../src/contexts/bbs-bls-signature-2020-v1.json","../src/contexts/www.w3.org_ns_did_v1.json","../src/contexts/w3id.org_security_v1.json","../src/contexts/w3id.org_security_v2.json","../src/contexts/w3id.org_security_v3-unstable.json","../src/contexts/w3id.org_security_suites_ed25519-2018_v1.json","../src/contexts/w3id.org_security_suites_x25519-2019_v1.json","../src/contexts/veramo.io_contexts_profile_v1.json","../src/contexts/lds-ecdsa-secp256k1-recovery2020-0.0.json","../src/contexts/w3id.org_security_suites_secp256k1recovery-2020_v2.json","../src/contexts/ed25519-signature-2020-v1.json","../src/contexts/json-web-signature-2020-v1.json","../src/contexts/eip712.json","../src/contexts/citizenship-v1.json","../src/contexts/vc-revocation-list-2020-v1.json","../src/contexts/vc-status-list-2021-v1.json","../src/ld-default-contexts.ts","../src/agent/CredentialProviderJsonld.ts"],"sourcesContent":["{\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"VerifiableCredential\": {\n \"@id\": \"https://www.w3.org/2018/credentials#VerifiableCredential\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"cred\": \"https://www.w3.org/2018/credentials#\",\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"credentialSchema\": {\n \"@id\": \"cred:credentialSchema\",\n \"@type\": \"@id\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"cred\": \"https://www.w3.org/2018/credentials#\",\n\n \"JsonSchemaValidator2018\": \"cred:JsonSchemaValidator2018\"\n }\n },\n \"credentialStatus\": { \"@id\": \"cred:credentialStatus\", \"@type\": \"@id\" },\n \"credentialSubject\": { \"@id\": \"cred:credentialSubject\", \"@type\": \"@id\" },\n \"evidence\": { \"@id\": \"cred:evidence\", \"@type\": \"@id\" },\n \"expirationDate\": { \"@id\": \"cred:expirationDate\", \"@type\": \"xsd:dateTime\" },\n \"holder\": { \"@id\": \"cred:holder\", \"@type\": \"@id\" },\n \"issued\": { \"@id\": \"cred:issued\", \"@type\": \"xsd:dateTime\" },\n \"issuer\": { \"@id\": \"cred:issuer\", \"@type\": \"@id\" },\n \"issuanceDate\": { \"@id\": \"cred:issuanceDate\", \"@type\": \"xsd:dateTime\" },\n \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n \"refreshService\": {\n \"@id\": \"cred:refreshService\",\n \"@type\": \"@id\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"cred\": \"https://www.w3.org/2018/credentials#\",\n\n \"ManualRefreshService2018\": \"cred:ManualRefreshService2018\"\n }\n },\n \"termsOfUse\": { \"@id\": \"cred:termsOfUse\", \"@type\": \"@id\" },\n \"validFrom\": { \"@id\": \"cred:validFrom\", \"@type\": \"xsd:dateTime\" },\n \"validUntil\": { \"@id\": \"cred:validUntil\", \"@type\": \"xsd:dateTime\" }\n }\n },\n\n \"VerifiablePresentation\": {\n \"@id\": \"https://www.w3.org/2018/credentials#VerifiablePresentation\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"cred\": \"https://www.w3.org/2018/credentials#\",\n \"sec\": \"https://w3id.org/security#\",\n\n \"holder\": { \"@id\": \"cred:holder\", \"@type\": \"@id\" },\n \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n \"verifiableCredential\": { \"@id\": \"cred:verifiableCredential\", \"@type\": \"@id\", \"@container\": \"@graph\" }\n }\n },\n\n \"EcdsaSecp256k1Signature2019\": {\n \"@id\": \"https://w3id.org/security#EcdsaSecp256k1Signature2019\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"challenge\": \"sec:challenge\",\n \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n \"domain\": \"sec:domain\",\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"jws\": \"sec:jws\",\n \"nonce\": \"sec:nonce\",\n \"proofPurpose\": {\n \"@id\": \"sec:proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n }\n },\n \"proofValue\": \"sec:proofValue\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n }\n },\n\n \"EcdsaSecp256r1Signature2019\": {\n \"@id\": \"https://w3id.org/security#EcdsaSecp256r1Signature2019\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"challenge\": \"sec:challenge\",\n \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n \"domain\": \"sec:domain\",\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"jws\": \"sec:jws\",\n \"nonce\": \"sec:nonce\",\n \"proofPurpose\": {\n \"@id\": \"sec:proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n }\n },\n \"proofValue\": \"sec:proofValue\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n }\n },\n\n \"Ed25519Signature2018\": {\n \"@id\": \"https://w3id.org/security#Ed25519Signature2018\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"challenge\": \"sec:challenge\",\n \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n \"domain\": \"sec:domain\",\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"jws\": \"sec:jws\",\n \"nonce\": \"sec:nonce\",\n \"proofPurpose\": {\n \"@id\": \"sec:proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n }\n },\n \"proofValue\": \"sec:proofValue\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n }\n },\n\n \"RsaSignature2018\": {\n \"@id\": \"https://w3id.org/security#RsaSignature2018\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"challenge\": \"sec:challenge\",\n \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n \"domain\": \"sec:domain\",\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"jws\": \"sec:jws\",\n \"nonce\": \"sec:nonce\",\n \"proofPurpose\": {\n \"@id\": \"sec:proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n }\n },\n \"proofValue\": \"sec:proofValue\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n }\n },\n\n \"proof\": { \"@id\": \"https://w3id.org/security#proof\", \"@type\": \"@id\", \"@container\": \"@graph\" }\n }\n}\n","{\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"description\": \"https://schema.org/description\",\n \"digestMultibase\": {\n \"@id\": \"https://w3id.org/security#digestMultibase\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"digestSRI\": {\n \"@id\": \"https://www.w3.org/2018/credentials#digestSRI\",\n \"@type\": \"https://www.w3.org/2018/credentials#sriString\"\n },\n \"mediaType\": {\n \"@id\": \"https://schema.org/encodingFormat\"\n },\n \"name\": \"https://schema.org/name\",\n\n \"VerifiableCredential\": {\n \"@id\": \"https://www.w3.org/2018/credentials#VerifiableCredential\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"confidenceMethod\": {\n \"@id\": \"https://www.w3.org/2018/credentials#confidenceMethod\",\n \"@type\": \"@id\"\n },\n \"credentialSchema\": {\n \"@id\": \"https://www.w3.org/2018/credentials#credentialSchema\",\n \"@type\": \"@id\"\n },\n \"credentialStatus\": {\n \"@id\": \"https://www.w3.org/2018/credentials#credentialStatus\",\n \"@type\": \"@id\"\n },\n \"credentialSubject\": {\n \"@id\": \"https://www.w3.org/2018/credentials#credentialSubject\",\n \"@type\": \"@id\"\n },\n \"description\": \"https://schema.org/description\",\n \"evidence\": {\n \"@id\": \"https://www.w3.org/2018/credentials#evidence\",\n \"@type\": \"@id\"\n },\n \"issuer\": {\n \"@id\": \"https://www.w3.org/2018/credentials#issuer\",\n \"@type\": \"@id\"\n },\n \"name\": \"https://schema.org/name\",\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"refreshService\": {\n \"@id\": \"https://www.w3.org/2018/credentials#refreshService\",\n \"@type\": \"@id\"\n },\n \"relatedResource\": {\n \"@id\": \"https://www.w3.org/2018/credentials#relatedResource\",\n \"@type\": \"@id\"\n },\n \"renderMethod\": {\n \"@id\": \"https://www.w3.org/2018/credentials#renderMethod\",\n \"@type\": \"@id\"\n },\n \"termsOfUse\": {\n \"@id\": \"https://www.w3.org/2018/credentials#termsOfUse\",\n \"@type\": \"@id\"\n },\n \"validFrom\": {\n \"@id\": \"https://www.w3.org/2018/credentials#validFrom\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"validUntil\": {\n \"@id\": \"https://www.w3.org/2018/credentials#validUntil\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n }\n }\n },\n\n \"EnvelopedVerifiableCredential\": \"https://www.w3.org/2018/credentials#EnvelopedVerifiableCredential\",\n\n \"VerifiablePresentation\": {\n \"@id\": \"https://www.w3.org/2018/credentials#VerifiablePresentation\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"holder\": {\n \"@id\": \"https://www.w3.org/2018/credentials#holder\",\n \"@type\": \"@id\"\n },\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"termsOfUse\": {\n \"@id\": \"https://www.w3.org/2018/credentials#termsOfUse\",\n \"@type\": \"@id\"\n },\n \"verifiableCredential\": {\n \"@id\": \"https://www.w3.org/2018/credentials#verifiableCredential\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\",\n \"@context\": null\n }\n }\n },\n\n \"EnvelopedVerifiablePresentation\": \"https://www.w3.org/2018/credentials#EnvelopedVerifiablePresentation\",\n\n \"JsonSchemaCredential\": \"https://www.w3.org/2018/credentials#JsonSchemaCredential\",\n\n \"JsonSchema\": {\n \"@id\": \"https://www.w3.org/2018/credentials#JsonSchema\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"jsonSchema\": {\n \"@id\": \"https://www.w3.org/2018/credentials#jsonSchema\",\n \"@type\": \"@json\"\n }\n }\n },\n\n \"BitstringStatusListCredential\": \"https://www.w3.org/ns/credentials/status#BitstringStatusListCredential\",\n\n \"BitstringStatusList\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#BitstringStatusList\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"encodedList\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#encodedList\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"statusPurpose\": \"https://www.w3.org/ns/credentials/status#statusPurpose\",\n \"ttl\": \"https://www.w3.org/ns/credentials/status#ttl\"\n }\n },\n\n \"BitstringStatusListEntry\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#BitstringStatusListEntry\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"statusListCredential\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#statusListCredential\",\n \"@type\": \"@id\"\n },\n \"statusListIndex\": \"https://www.w3.org/ns/credentials/status#statusListIndex\",\n \"statusPurpose\": \"https://www.w3.org/ns/credentials/status#statusPurpose\",\n \"statusMessage\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#statusMessage\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"message\": \"https://www.w3.org/ns/credentials/status#message\",\n \"status\": \"https://www.w3.org/ns/credentials/status#status\"\n }\n },\n \"statusReference\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#statusReference\",\n \"@type\": \"@id\"\n },\n \"statusSize\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#statusSize\",\n \"@type\": \"https://www.w3.org/2001/XMLSchema#integer\"\n }\n }\n },\n\n \"DataIntegrityProof\": {\n \"@id\": \"https://w3id.org/security#DataIntegrityProof\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"cryptosuite\": {\n \"@id\": \"https://w3id.org/security#cryptosuite\",\n \"@type\": \"https://w3id.org/security#cryptosuiteString\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"previousProof\": {\n \"@id\": \"https://w3id.org/security#previousProof\",\n \"@type\": \"@id\"\n },\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": {\n \"@id\": \"https://w3id.org/security#proofValue\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n\n \"...\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#...\"\n },\n \"_sd\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#_sd\",\n \"@type\": \"@json\"\n },\n \"_sd_alg\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#_sd_alg\"\n },\n \"aud\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#aud\",\n \"@type\": \"@id\"\n },\n \"cnf\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#cnf\",\n \"@context\": {\n \"@protected\": true,\n\n \"kid\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#kid\",\n \"@type\": \"@id\"\n },\n \"jwk\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#jwk\",\n \"@type\": \"@json\"\n }\n }\n },\n \"exp\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#exp\",\n \"@type\": \"https://www.w3.org/2001/XMLSchema#nonNegativeInteger\"\n },\n \"iat\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#iat\",\n \"@type\": \"https://www.w3.org/2001/XMLSchema#nonNegativeInteger\"\n },\n \"iss\": {\n \"@id\": \"https://www.iana.org/assignments/jose#iss\",\n \"@type\": \"@id\"\n },\n \"jku\": {\n \"@id\": \"https://www.iana.org/assignments/jose#jku\",\n \"@type\": \"@id\"\n },\n \"kid\": {\n \"@id\": \"https://www.iana.org/assignments/jose#kid\",\n \"@type\": \"@id\"\n },\n \"nbf\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#nbf\",\n \"@type\": \"https://www.w3.org/2001/XMLSchema#nonNegativeInteger\"\n },\n \"sub\": {\n \"@id\": \"https://www.iana.org/assignments/jose#sub\",\n \"@type\": \"@id\"\n },\n \"x5u\": {\n \"@id\": \"https://www.iana.org/assignments/jose#x5u\",\n \"@type\": \"@id\"\n }\n }\n}\n","import { Ed25519Signature2018 } from '@digitalbazaar/ed25519-signature-2018'\nimport type { IKey, TKeyType } from '@veramo/core'\nimport { asArray } from '@veramo/utils'\nimport suiteContext2018 from 'ed25519-signature-2018-context'\n// @ts-ignore\nimport * as u8a from 'uint8arrays'\nimport { Ed25519VerificationKey2018 } from '@digitalbazaar/ed25519-verification-key-2018'\n// const Ed25519Signature2018 = await import('@digitalbazaar/ed25519-signature-2018')\nimport { SphereonLdSignature } from '../ld-suites'\nimport type { DIDDocument } from 'did-resolver'\nimport { base64ToBytes, bytesToBase64, VerifiableCredentialSP } from '@sphereon/ssi-sdk.core'\nimport { IVcdmIssuerAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\n\nexport class SphereonEd25519Signature2018 extends SphereonLdSignature {\n constructor() {\n super()\n // Ensure it is loaded\n suiteContext2018?.constants\n }\n\n getSupportedVerificationType(): string {\n return 'Ed25519VerificationKey2018'\n }\n\n getSupportedProofType(): string {\n return 'Ed25519Signature2018'\n }\n getSupportedKeyType(): TKeyType {\n return 'Ed25519'\n }\n\n getContext(): string {\n return 'https://w3id.org/security/suites/ed25519-2018/v1'\n }\n\n getSuiteForSigning(key: IKey, issuerDid: string, verificationMethodId: string, context: IVcdmIssuerAgentContext): any {\n const controller = issuerDid\n\n // DID Key ID\n const id = verificationMethodId\n\n const signer = {\n // returns a JWS detached\n sign: async (args: { data: Uint8Array }): Promise<Uint8Array> => {\n const messageString = bytesToBase64(args.data)\n const signature = await context.agent.keyManagerSign({\n keyRef: key.kid,\n algorithm: 'EdDSA',\n data: messageString,\n encoding: 'base64',\n })\n return base64ToBytes(signature)\n },\n }\n\n const options = {\n id,\n controller,\n publicKeyBase58: u8a.toString(u8a.fromString(key.publicKeyHex, 'base16'), 'base58btc'),\n signer: signer,\n type: this.getSupportedVerificationType(),\n }\n\n // For now we always go through this route given the multibase key has an invalid header\n const verificationKey = new Ed25519VerificationKey2018(options)\n // overwrite the signer since we're not passing the private key and transmute doesn't support that behavior\n verificationKey.signer = () => signer as any\n // verificationKey.type = this.getSupportedVerificationType()*/\n\n return new Ed25519Signature2018({ key: verificationKey, signer: signer })\n }\n\n preVerificationCredModification(credential: VerifiableCredentialSP): void {\n const vcJson = JSON.stringify(credential)\n if (vcJson.indexOf('Ed25519Signature2018 DISABLED') > -1) {\n if (vcJson.indexOf(this.getContext()) === -1) {\n credential['@context'] = [...asArray(credential['@context'] || []), this.getContext()]\n }\n // Gives a JSON-LD redefinement on a protected term. Probably better to not have the Es25519Signature2018 context though!\n const v1Idx = vcJson.indexOf('https://w3id.org/security/v1')\n if (v1Idx > -1 && Array.isArray(credential['@context'])) {\n delete credential['@context'][v1Idx]\n }\n const v3Idx = vcJson.indexOf('https://w3id.org/security/v3-unstable')\n if (v3Idx === -1 && Array.isArray(credential['@context'])) {\n credential['@context'].push('https://w3id.org/security/v3-unstable')\n }\n }\n }\n\n getSuiteForVerification(): any {\n return new Ed25519Signature2018()\n }\n\n // preSigningCredModification(credential: CredentialPayload): void {\n preSigningCredModification(): void {\n // nothing to do here\n }\n\n // preDidResolutionModification(didUrl: string, didDoc: DIDDocument): void {\n preDidResolutionModification(didUrl: string, didDoc: DIDDocument) {\n /*const vcJson = JSON.stringify(didDoc)\n if (vcJson.indexOf('Ed25519Signature2018') > -1) {\n if (vcJson.indexOf(this.getContext()) === -1) {\n didDoc['@context'] = [...asArray(didDoc['@context'] || []), this.getContext()]\n }\n }*/\n }\n}\n","import type { CredentialPayload, IKey, PresentationPayload, TKeyType } from '@veramo/core'\n// @ts-ignore\nimport type { DIDDocument } from 'did-resolver/lib/resolver'\nimport { IVcdmIssuerAgentContext, IVcdmVerifierAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { VerifiableCredentialSP } from '@sphereon/ssi-sdk.core'\n\n// export type RequiredAgentMethods = IResolver & IDIDManager & Pick<ISphereonKeyManager, 'keyManagerGet' | 'keyManagerSign' | 'keyManagerVerify'>\n\nexport abstract class SphereonLdSignature {\n // LinkedDataSignature Suites according to\n // https://github.com/digitalbazaar/jsonld-signatures/blob/main/lib/suites/LinkedDataSignature\n // Add type definition as soon as https://github.com/digitalbazaar/jsonld-signatures\n // supports those.\n\n abstract getSupportedVerificationType(): string | string[]\n\n abstract getSupportedProofType(): string\n\n abstract getSupportedKeyType(): TKeyType\n\n abstract getSuiteForSigning(key: IKey, issuerDid: string, verificationMethodId: string, context: IVcdmIssuerAgentContext): any\n\n abstract getContext(): string\n\n abstract getSuiteForVerification(context: IVcdmVerifierAgentContext): any\n\n abstract preDidResolutionModification(didUrl: string, didDoc: DIDDocument): void\n\n abstract preSigningCredModification(credential: CredentialPayload): void\n\n abstract preVerificationCredModification(credential: VerifiableCredentialSP): void\n\n preSigningPresModification(presentation: PresentationPayload): void {\n // TODO: Remove invalid field 'verifiers' from Presentation. Needs to be adapted for LD verifiableCredentials\n // Only remove empty array (vc.signPresentation will throw then)\n const sanitizedPresentation = presentation as any\n if (sanitizedPresentation?.verifier?.length == 0) {\n delete sanitizedPresentation.verifier\n }\n }\n}\n","import { Ed25519Signature2020 } from '@digitalcredentials/ed25519-signature-2020'\nimport { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020'\nimport { base64ToBytes, bytesToBase64, hexToMultibase, VerifiableCredentialSP } from '@sphereon/ssi-sdk.core'\nimport type { IKey, TKeyType } from '@veramo/core'\nimport suiteContext2020 from 'ed25519-signature-2020-context'\n\nimport { SphereonLdSignature } from '../ld-suites'\nimport { IVcdmIssuerAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\n\nexport class SphereonEd25519Signature2020 extends SphereonLdSignature {\n constructor() {\n super()\n // Ensure it is loaded\n suiteContext2020?.constants\n }\n\n getSupportedVerificationType(): string[] {\n return ['Ed25519VerificationKey2020', 'Ed25519VerificationKey2018']\n }\n\n getSupportedProofType(): string {\n return 'Ed25519Signature2020'\n }\n\n getSupportedKeyType(): TKeyType {\n return 'Ed25519'\n }\n\n getContext(): string {\n return 'https://w3id.org/security/suites/ed25519-2020/v1'\n }\n\n getSuiteForSigning(key: IKey, issuerDid: string, verificationMethodId: string, context: IVcdmIssuerAgentContext): any {\n const controller = issuerDid\n\n // DID Key ID\n const id = verificationMethodId\n\n const signer = {\n // returns a JWS detached\n sign: async (args: { data: Uint8Array }): Promise<Uint8Array> => {\n const messageString = bytesToBase64(args.data)\n const signature = await context.agent.keyManagerSign({\n keyRef: key.kid,\n algorithm: 'EdDSA',\n data: messageString,\n encoding: 'base64',\n })\n return base64ToBytes(signature)\n },\n }\n\n const options = {\n id: id,\n controller: controller,\n publicKeyMultibase: hexToMultibase(key.publicKeyHex, key.type).value,\n signer: () => signer,\n type: this.getSupportedVerificationType(),\n }\n\n // For now we always go through this route given the multibase key has an invalid header\n const verificationKey = new Ed25519VerificationKey2020(options)\n // overwrite the signer since we're not passing the private key and transmute doesn't support that behavior\n verificationKey.signer = () => signer as any\n // verificationKey.type = this.getSupportedVerificationType()\n\n return new Ed25519Signature2020({\n key: verificationKey,\n signer: signer,\n })\n }\n preVerificationCredModification(credential: VerifiableCredentialSP): void {\n /* const vcJson = JSON.stringify(credential)\n if (vcJson.indexOf('Ed25519Signature2020') > -1) {\n if (vcJson.indexOf(this.getContext()) === -1) {\n credential['@context'] = [...asArray(credential['@context'] || []), this.getContext()]\n }\n }*/\n }\n\n getSuiteForVerification(): any {\n return new Ed25519Signature2020()\n }\n\n // preSigningCredModification(_credential: CredentialPayload): void {}\n preSigningCredModification(): void {}\n\n // preDidResolutionModification(_didUrl: string, _didDoc: DIDDocument): void {\n preDidResolutionModification(): void {\n // nothing to do here\n }\n}\n","import type { CredentialPayload, DIDDocument, IKey, TKeyType } from '@veramo/core'\nimport { asArray, encodeJoseBlob } from '@veramo/utils'\nimport ldsEcdsa from '@veramo-community/lds-ecdsa-secp256k1-recovery2020'\n// @ts-ignore\nimport { concat as concatArrays } from 'uint8arrays/concat'\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\nimport { SphereonLdSignature } from '../ld-suites'\nimport { IVcdmIssuerAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\n\nconst { EcdsaSecp256k1RecoveryMethod2020, EcdsaSecp256k1RecoverySignature2020 } = ldsEcdsa\n\nexport class SphereonEcdsaSecp256k1RecoverySignature2020 extends SphereonLdSignature {\n getSupportedVerificationType(): string {\n return 'EcdsaSecp256k1RecoveryMethod2020'\n }\n\n getSupportedProofType(): string {\n return 'EcdsaSecp256k1RecoverySignature2020'\n }\n\n getSupportedKeyType(): TKeyType {\n return 'Secp256k1'\n }\n\n getSuiteForSigning(key: IKey, did: string, verifiableMethodId: string, context: IVcdmIssuerAgentContext): any {\n const controller = did\n const signer = {\n //returns a JWS detached\n sign: async (args: { data: Uint8Array }): Promise<string> => {\n const header = {\n alg: 'ES256K-R',\n b64: false,\n crit: ['b64'],\n }\n const headerString = encodeJoseBlob(header)\n const messageBuffer = concatArrays([fromString(`${headerString}.`, 'utf-8'), args.data])\n const signature = await context.agent.keyManagerSign({\n keyRef: key.kid,\n algorithm: 'ES256K-R',\n data: messageBuffer,\n encoding: 'base64',\n })\n return `${headerString}..${signature}`\n },\n }\n\n const suite = new EcdsaSecp256k1RecoverySignature2020({\n // signer,\n key: new EcdsaSecp256k1RecoveryMethod2020({\n publicKeyHex: key.publicKeyHex,\n signer: () => signer,\n type: this.getSupportedVerificationType(),\n controller,\n id: verifiableMethodId,\n }),\n })\n\n suite.ensureSuiteContext = ({ document }: { document: any; addSuiteContext: boolean }) => {\n document['@context'] = [...asArray(document['@context'] || []), this.getContext()]\n }\n\n return suite\n }\n\n getSuiteForVerification(): any {\n return new EcdsaSecp256k1RecoverySignature2020()\n }\n\n preVerificationCredModification(): void {}\n\n preSigningCredModification(credential: CredentialPayload): void {\n credential['@context'] = [\n ...asArray(credential['@context'] || []),\n 'https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld',\n ]\n }\n\n preDidResolutionModification(didUrl: string, didDoc: DIDDocument): void {\n const idx =\n didDoc['@context']?.indexOf('https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld') || -1\n if (Array.isArray(didDoc['@context']) && idx !== -1) {\n didDoc['@context'][idx] = this.getContext()\n }\n // did:ethr\n if (didUrl.toLowerCase().startsWith('did:ethr')) {\n // TODO: EcdsaSecp256k1RecoveryMethod2020 does not support blockchainAccountId\n // blockchainAccountId to ethereumAddress\n didDoc.verificationMethod?.forEach((x) => {\n if (x.blockchainAccountId) {\n x.ethereumAddress = x.blockchainAccountId.substring(0, x.blockchainAccountId.lastIndexOf('@'))\n }\n })\n }\n }\n\n getContext(): string {\n return 'https://w3id.org/security/suites/secp256k1recovery-2020/v2'\n }\n}\n","import sigpkg from '@digitalcredentials/jsonld-signatures'\nimport * as vc from '@digitalcredentials/vc'\nimport { contextHasPlugin } from '@sphereon/ssi-sdk.agent-config'\nimport type { VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core'\nimport type { IIssueCredentialStatusOpts, IStatusListPlugin } from '@sphereon/ssi-sdk.vc-status-list'\nimport type { IVerifyResult, W3CVerifiablePresentation } from '@sphereon/ssi-types'\nimport type { CredentialPayload, IKey, PresentationPayload } from '@veramo/core'\nimport Debug from 'debug'\n\nimport { LdContextLoader } from './ld-context-loader'\nimport { LdDocumentLoader } from './ld-document-loader'\nimport { LdSuiteLoader } from './ld-suite-loader'\nimport { IVcdmIssuerAgentContext, IVcdmVerifierAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { events } from './enums'\n\nconst { purposes } = sigpkg\n\n// import jsigs from '@digitalcredentials/jsonld-signatures'\n//Support for Typescript added in version 9.0.0\n// eslint-disable-next-line @typescript-eslint/no-var-requires\n// const jsigs = require('jsonld-signatures')\n\nconst ProofPurpose = purposes.ProofPurpose\nconst AssertionProofPurpose = purposes.AssertionProofPurpose\nconst AuthenticationProofPurpose = purposes.AuthenticationProofPurpose\n\nconst debug = Debug('sphereon:ssi-sdk:ld-credential-module-local')\n\nexport class LdCredentialModule {\n /**\n * TODO: General Implementation Notes\n * - (SOLVED) EcdsaSecp256k1Signature2019 (Signature) and EcdsaSecp256k1VerificationKey2019 (Key)\n * are not useable right now, since they are not able to work with blockChainId and ECRecover.\n * - DID Fragment Resolution.\n * - Key Manager and Verification Methods: Veramo currently implements no link between those.\n */\n\n ldSuiteLoader: LdSuiteLoader\n private ldDocumentLoader: LdDocumentLoader\n\n constructor(options: {\n ldContextLoader: LdContextLoader\n ldSuiteLoader: LdSuiteLoader\n documentLoader?: {\n localResolution?: boolean // Resolve identifiers hosted by the agent\n uniresolverResolution?: boolean // Resolve identifiers using universal resolver\n resolverResolution?: boolean // Use registered drivers\n }\n }) {\n this.ldSuiteLoader = options.ldSuiteLoader\n this.ldDocumentLoader = new LdDocumentLoader(options)\n }\n\n async issueLDVerifiableCredential(\n args: {\n credential: CredentialPayload\n issuerDid: string\n key: IKey\n verificationMethodId: string\n purpose: typeof ProofPurpose\n credentialStatusOpts?: IIssueCredentialStatusOpts\n },\n context: IVcdmIssuerAgentContext,\n ): Promise<VerifiableCredentialSP> {\n const { key, issuerDid, verificationMethodId, credential } = args\n const purpose = args.purpose\n debug(`Issue VC method called for ${key.kid}...`)\n // TODO: try multiple matching suites until one works or list is exhausted\n const suite = this.ldSuiteLoader.getSignatureSuiteForKeyType(key.type, key.meta?.verificationMethod?.type ?? '')[0]\n\n const documentLoader = this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: true,\n verifiableData: credential,\n })\n\n // some suites can modify the incoming credential (e.g. add required contexts)\n suite.preSigningCredModification(credential)\n debug(`Signing suite will be retrieved for ${verificationMethodId}...`)\n const signingSuite = await suite.getSuiteForSigning(key, issuerDid, verificationMethodId, context)\n debug(`Issuer ${issuerDid} will create VC for ${key.kid}...`)\n if (contextHasPlugin<IVcdmIssuerAgentContext & IStatusListPlugin>(context, 'slAddStatusToCredential')) {\n // Handle status list if enabled\n // We do some additional check to determine whether we will call the below method, as the OID4VCI or W3C-VC API could also have called the method already\n if (credential.credentialStatus && !credential.credentialStatus.statusListCredential) {\n const credentialStatusVC = await context.agent.slAddStatusToCredential({ ...args.credentialStatusOpts, credential })\n if (credentialStatusVC.credentialStatus) {\n credential.credentialStatus = credentialStatusVC.credentialStatus\n }\n }\n }\n\n let verifiableCredential\n //Needs to be signed using jsonld-signaures@5.0.1\n if (key.type === 'Bls12381G2') {\n verifiableCredential = await sigpkg.jsigs.sign(credential, {\n suite: signingSuite,\n purpose,\n documentLoader,\n compactProof: true,\n })\n } else {\n verifiableCredential = await vc.issue({\n credential,\n purpose,\n suite: signingSuite,\n documentLoader,\n compactProof: false,\n })\n }\n debug(`Issuer ${issuerDid} created VC for ${key.kid}`)\n return verifiableCredential\n }\n\n async signLDVerifiablePresentation(\n presentation: PresentationPayload,\n holderDid: string,\n key: IKey,\n verificationMethodId: string,\n challenge: string | undefined,\n domain: string | undefined,\n purpose: typeof ProofPurpose = !challenge // domain is not a mandatory var for AuthenticationProofPurpose per se, but challenge is.\n ? new AssertionProofPurpose()\n : new AuthenticationProofPurpose({\n domain,\n challenge,\n }),\n context: IVcdmIssuerAgentContext,\n ): Promise<VerifiablePresentationSP> {\n // TODO: try multiple matching suites until one works or list is exhausted\n const suite = this.ldSuiteLoader.getSignatureSuiteForKeyType(key.type, key.meta?.verificationMethod?.type ?? '')[0]\n const documentLoader = this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: true,\n verifiableData: presentation,\n })\n\n suite.preSigningPresModification(presentation)\n\n if (key.type === 'Bls12381G2') {\n return await sigpkg.jsigs.sign(presentation, {\n suite: await suite.getSuiteForSigning(key, holderDid, verificationMethodId, context),\n purpose,\n documentLoader,\n compactProof: true,\n })\n }\n return await vc.signPresentation({\n presentation,\n suite: await suite.getSuiteForSigning(key, holderDid, verificationMethodId, context),\n challenge,\n domain,\n documentLoader,\n purpose,\n compactProof: false,\n })\n }\n\n async verifyCredential(\n credential: VerifiableCredentialSP,\n context: IVcdmVerifierAgentContext,\n fetchRemoteContexts = false,\n purpose: typeof ProofPurpose = new AssertionProofPurpose(),\n checkStatus?: Function,\n ): Promise<IVerifyResult> {\n const verificationSuites = this.getAllVerificationSuites(context)\n this.ldSuiteLoader.getAllSignatureSuites().forEach((suite) => suite.preVerificationCredModification(credential))\n // let result: IVerifyResult\n const documentLoader = this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: fetchRemoteContexts,\n verifiableData: credential,\n })\n /*\n const isBls = credential.proof.type?.includes('BbsBlsSignature2020')\n const suite = isBls\n ? (this.ldSuiteLoader\n .getAllSignatureSuites()\n .find((s) => s.getSupportedVeramoKeyType() === 'Bls12381G2')\n ?.getSuiteForVerification(context) as BbsBlsSignature2020)\n : verificationSuites\n context.agent\n if (isBls) {\n // fixme: check signature of verify method, adjust result if needed\n result = await jsigs.verify(credential, {\n suite,\n purpose,\n documentLoader,\n compactProof: true,\n })\n } else {*/\n const result = await vc.verifyCredential({\n credential,\n suite: verificationSuites,\n documentLoader,\n purpose,\n compactProof: false,\n checkStatus,\n })\n // }\n if (result.verified) {\n void context.agent.emit(events.CREDENTIAL_VERIFIED, { credential, ...result })\n } else {\n // result can include raw Error\n debug(`Error verifying LD Verifiable Credential: ${JSON.stringify(result, null, 2)}`)\n console.log(`ERROR verifying LD VC:\\n${JSON.stringify(result, null, 2)}`)\n void context.agent.emit(events.CREDENTIAL_VERIFY_FAILED, { credential, ...result })\n }\n return result\n }\n\n private getAllVerificationSuites(context: IVcdmVerifierAgentContext) {\n return this.ldSuiteLoader.getAllSignatureSuites().map((x) => x.getSuiteForVerification(context))\n }\n\n async verifyPresentation(\n presentation: VerifiablePresentationSP | W3CVerifiablePresentation,\n challenge: string | undefined,\n domain: string | undefined,\n context: IVcdmVerifierAgentContext,\n fetchRemoteContexts = false,\n presentationPurpose: typeof ProofPurpose = !challenge // domain is not a mandatory var for AuthenticationProofPurpose per se, but challenge is.\n ? new AssertionProofPurpose()\n : new AuthenticationProofPurpose({ domain, challenge }),\n checkStatus?: Function,\n //AssertionProofPurpose()\n ): Promise<IVerifyResult> {\n if (typeof presentation === 'string') {\n return {\n verified: false,\n error: {\n message: 'Cannot verify a jwt/string presentation with the jsonld verifier',\n },\n }\n }\n /* let result: IVerifyResult\n if (presentation.proof.type?.includes('BbsBlsSignature2020')) {\n //Should never be null or undefined\n const suite = this.ldSuiteLoader\n .getAllSignatureSuites()\n .find((s) => s.getSupportedVeramoKeyType() === 'Bls12381G2')\n ?.getSuiteForVerification(context) as BbsBlsSignature2020\n result = await jsigs.verify(presentation, {\n suite,\n purpose: presentationPurpose,\n documentLoader: this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: fetchRemoteContexts,\n verifiableData: presentation,\n }),\n compactProof: true,\n })\n } else {*/\n const result = await vc.verify({\n presentation,\n suite: this.getAllVerificationSuites(context),\n documentLoader: this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: fetchRemoteContexts,\n verifiableData: presentation as VerifiablePresentationSP,\n }),\n challenge,\n domain,\n presentationPurpose,\n compactProof: false,\n checkStatus,\n })\n // }\n\n if (result.verified && (!result.presentationResult || result.presentationResult.verified)) {\n context.agent.emit(events.PRESENTATION_VERIFIED, { presentation, ...result })\n } else {\n // NOT verified.\n debug(`Error verifying LD Verifiable Presentation: ${JSON.stringify(result, null, 2)}`)\n context.agent.emit(events.PRESENTATION_VERIFY_FAILED, { presentation, ...result })\n }\n return result\n }\n}\n","import sigpkg from '@digitalcredentials/jsonld-signatures'\nimport * as vc from '@digitalcredentials/vc'\nimport type { CredentialPayload, DIDDocument, IAgentContext, PresentationPayload, VerifiableCredential, VerifiablePresentation } from '@veramo/core'\nimport { fetch } from 'cross-fetch'\nimport Debug from 'debug'\n\nimport { LdContextLoader } from './ld-context-loader'\nimport { LdSuiteLoader } from './ld-suite-loader'\nimport { getAgentResolver } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { IVcdmVerifierAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core'\n\nconst debug = Debug('sphereon:ssi-sdk:credential-jsonld')\n\n/**\n * Initializes a list of Veramo-wrapped LD Signature suites and exposes those to the Agent Module\n */\nexport class LdDocumentLoader {\n private readonly ldContextLoader: LdContextLoader\n ldSuiteLoader: LdSuiteLoader\n private readonly localResolution?: boolean\n private readonly uniresolverResolution?: boolean\n private readonly resolverResolution?: boolean\n\n constructor(options: {\n ldContextLoader: LdContextLoader\n ldSuiteLoader: LdSuiteLoader\n documentLoader?: {\n localResolution?: boolean // Resolve identifiers hosted by the agent\n uniresolverResolution?: boolean // Resolve identifiers using universal resolver\n resolverResolution?: boolean // Use registered drivers\n }\n }) {\n this.ldContextLoader = options.ldContextLoader\n this.ldSuiteLoader = options.ldSuiteLoader\n this.localResolution = options?.documentLoader?.localResolution\n this.uniresolverResolution = options?.documentLoader?.uniresolverResolution\n this.resolverResolution = options?.documentLoader?.resolverResolution\n }\n\n getLoader(\n context: IVcdmVerifierAgentContext,\n {\n attemptToFetchContexts = false,\n verifiableData,\n }: {\n attemptToFetchContexts: boolean\n verifiableData:\n | VerifiableCredential\n | VerifiableCredentialSP\n | VerifiablePresentation\n | VerifiablePresentationSP\n | CredentialPayload\n | PresentationPayload\n },\n ) {\n return sigpkg.extendContextLoader(async (url: string) => {\n if (!url || url.trim().length === 0) {\n throw Error('URL needs to be provided to load a context!')\n }\n\n if (url.startsWith('#') && verifiableData.issuer !== undefined) {\n url = (typeof verifiableData.issuer === 'string' ? verifiableData.issuer : verifiableData.issuer.id) + url\n debug(url)\n }\n // did resolution\n if (url.toLowerCase().startsWith('did:')) {\n // const parsedDID = parseDid(url)\n const resolutionResult = await getAgentResolver(context as IAgentContext<any>, {\n localResolution: this.localResolution,\n resolverResolution: this.resolverResolution,\n uniresolverResolution: this.uniresolverResolution,\n }).resolve(url)\n // context.agent.resolveDid({didUrl: url})\n let didDoc: DIDDocument | null = resolutionResult.didDocument\n if (!didDoc) {\n throw new Error(`Could not fetch DID document with url: ${url}. Did you enable the the driver?`)\n }\n // currently Veramo LD suites can modify the resolution response for DIDs from\n // the document Loader. This allows to fix incompatibilities between DID Documents\n // and LD suites to be fixed specifically within the Veramo LD Suites definition\n this.ldSuiteLoader.getAllSignatureSuites().forEach((x) => x.preDidResolutionModification(url, didDoc as DIDDocument))\n\n // Move legacy publicKey to verificationMethod, so any dependency that does not support it, keeps functioning\n if (didDoc.publicKey) {\n if (!didDoc.verificationMethod) {\n didDoc.verificationMethod = []\n }\n didDoc.verificationMethod = [...didDoc.verificationMethod, ...didDoc.publicKey]\n if (didDoc.verificationMethod.length === 0) {\n throw new Error(`No verification method available for ${url}`)\n }\n delete didDoc.publicKey\n }\n\n const origUrl = url\n if (url.indexOf('#') > 0 && didDoc && typeof didDoc === 'object' && '@context' in didDoc /*&& url.startsWith('did:oyd:')*/) {\n // Apparently we got a whole DID document, but we are looking for a verification method\n // We use origUrl here, as that is how it was used in the VM\n const component = await context.agent.getDIDComponentById({ didDocument: didDoc, didUrl: origUrl })\n debug('OYD DID component:')\n debug(JSON.stringify(component))\n if (component && typeof component !== 'string' && component.id) {\n // We have to provide a context\n const contexts = this.ldSuiteLoader\n .getAllSignatureSuites()\n .filter((x) => x.getSupportedVerificationType() === component.type)\n .filter((value, index, self) => self.indexOf(value) === index)\n .map((value) => value.getContext())\n const fragment = {\n ...component,\n ...(Array.isArray(contexts) && contexts.length > 0 ? { '@context': contexts } : { '@context': didDoc['@context'] }),\n }\n\n return {\n contextUrl: null,\n documentUrl: url,\n document: fragment,\n }\n }\n }\n\n return {\n contextUrl: null,\n documentUrl: url,\n document: didDoc,\n }\n }\n\n if (this.ldContextLoader.has(url)) {\n const contextDoc = await this.ldContextLoader.get(url)\n return {\n contextUrl: null,\n documentUrl: url,\n document: contextDoc,\n }\n } else {\n if (attemptToFetchContexts) {\n debug('WARNING: attempting to fetch the doc directly for ', url)\n try {\n const response = await fetch(url, { redirect: 'follow' })\n if (response.status === 200) {\n const document = await response.json()\n // fixme: The VC API returns an _id object for RL Credentials, which is not allowed, so delete it here for now\n if (url.startsWith('https://vc-api.sphereon.io/services/credentials/')) {\n delete document._id\n }\n return {\n contextUrl: null,\n documentUrl: url,\n document,\n }\n }\n } catch (e) {\n debug('WARNING: unable to fetch the doc or interpret it as JSON', e)\n }\n }\n }\n\n debug(`WARNING: Possible unknown context/identifier for ${url} \\n falling back to default documentLoader`)\n\n return vc.defaultDocumentLoader(url)\n })\n }\n}\n","import sigpkg from '@digitalcredentials/jsonld-signatures'\n\nexport const ProofPurpose = sigpkg.purposes.ProofPurpose\nexport const ControllerProofPurpose = sigpkg.purposes.ControllerProofPurpose\nexport const AssertionProofPurpose = sigpkg.purposes.AssertionProofPurpose\nexport const AuthenticationProofPurpose = sigpkg.purposes.AuthenticationProofPurpose\n\n/**\n * Plugin method map interface\n * @public\n */\nexport enum MethodNames {\n createVerifiableCredential = 'createVerifiableCredential',\n createVerifiablePresentation = 'createVerifiablePresentation',\n verifyCredential = 'verifyCredential',\n verifyPresentation = 'verifyPresentation',\n}\n\nexport type IBindingOverrides = Map<string, MethodNames>\n\nexport enum events {\n CREDENTIAL_ISSUED = 'credentialIssued',\n CREDENTIAL_VERIFIED = 'credentialVerified',\n PRESENTATION_VERIFIED = 'presentationVerified',\n PRESENTATION_VERIFY_FAILED = 'presentationVerificationFailed',\n CREDENTIAL_VERIFY_FAILED = 'credentialVerificationFailed',\n}\n","/**\n * The LdContextLoader is initialized with a List of Map<string, ContextDoc | Promise<ContextDoc>>\n * that it unifies into a single Map to provide to the documentLoader within\n * the w3c credential module.\n */\nimport { ContextDoc } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { isIterable, type OrPromise, type RecordLike } from '@veramo/utils'\n\nexport class LdContextLoader {\n private readonly contexts: Record<string, OrPromise<ContextDoc>>\n\n constructor(options: { contextsPaths: RecordLike<OrPromise<ContextDoc>>[] }) {\n this.contexts = {}\n Array.from(options.contextsPaths, (mapItem) => {\n const map = isIterable(mapItem) ? mapItem : Object.entries(mapItem)\n // generate-plugin-schema is failing unless we use the cast to `any[]`\n for (const [key, value] of map as any[]) {\n this.contexts[key] = value\n }\n })\n }\n\n has(url: string): boolean {\n return this.contexts[url] !== null && typeof this.contexts[url] !== 'undefined'\n }\n\n async get(url: string): Promise<ContextDoc> {\n return this.contexts[url]\n }\n}\n","import type { TKeyType } from '@veramo/core'\n\nimport { SphereonLdSignature } from './ld-suites'\nimport { asArray } from '@sphereon/ssi-sdk.core'\n\n/**\n * Initializes a list of Veramo-wrapped LD Signature suites and exposes those to the Agent Module\n */\n// const debug = Debug('sphereon:ssi-sdk-credential-jsonld')\nexport class LdSuiteLoader {\n constructor(options: { ldSignatureSuites: SphereonLdSignature[] }) {\n options.ldSignatureSuites.forEach((suite) => {\n const keyType = suite.getSupportedKeyType()\n // this.signatureMap[keyType] = suite\n let verifierMapping = this.signatureMap[keyType] ?? {}\n asArray<string>(suite.getSupportedVerificationType()).forEach((verificationType: string) => {\n verifierMapping[verificationType] = [...(verifierMapping[verificationType] ?? []), suite]\n })\n return (this.signatureMap[keyType] = { ...this.signatureMap[keyType], ...verifierMapping })\n /*if (verificationType !== keyType) {\n if (this.signatureMap[verificationType]) {\n throw Error(`Cannot register 2 suites for the same type ${verificationType}`)\n }\n this.signatureMap[verificationType] = suite\n }*/\n })\n }\n\n private signatureMap: Record<string, Record<string, SphereonLdSignature[]>> = {}\n\n getSignatureSuiteForKeyType(keyType: TKeyType, verificationType?: string): SphereonLdSignature[] {\n // Always use verification type if supplied. This is the type denoted by the DID verification method type.\n // The only exception is JsonWebKey. We do not have a signature suite anymore for that (discontinued), so we take the first verification suite in that case. Just like no verification method was supplied\n const verificationToSuites = this.signatureMap[keyType]\n const suites =\n verificationType && verificationType !== '' && verificationType !== 'JsonWebKey2020'\n ? verificationToSuites[verificationType]\n : Object.values(verificationToSuites ?? {})?.[0]\n // const suite = this.signatureMap[keyType]?.[verificationType]\n if (Array.isArray(suites) && suites.length > 0) {\n return suites\n }\n throw new Error(\n `No Sphereon or Veramo LD Signature Suite for ${keyType} and verification type ${verificationType ?? '<none>'}. Available suites:\\n ${Object.entries(\n this.signatureMap,\n )\n .map(\n ([kt, record]) =>\n `\\nKeyType:${kt}\\n => ${Object.entries(record)\n .map(\n ([verificationType, suites]) =>\n `\\n verification-type: ${verificationType}\\n => proof-types: ${suites.map((suite) => suite.getSupportedProofType()).join(', ')}`,\n )\n .join(', ')}`,\n )\n .join(', ')}`,\n )\n }\n\n getAllSignatureSuites(): SphereonLdSignature[] {\n return [\n ...new Set(\n Object.values(this.signatureMap)\n .map((x) => Object.values(x))\n .flat(2),\n ),\n ]\n }\n\n getAllSignatureSuiteTypes(): string[] {\n return [\n ...new Set(\n Object.values(this.signatureMap)\n .map((x) => Object.keys(x))\n .flat(),\n ),\n ]\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"BbsBlsSignature2020\": {\n \"@id\": \"https://w3id.org/security#BbsBlsSignature2020\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"BbsBlsSignatureProof2020\": {\n \"@id\": \"https://w3id.org/security#BbsBlsSignatureProof2020\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"sec\": \"https://w3id.org/security#\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"Bls12381G1Key2020\": {\n \"@id\": \"https://w3id.org/security#Bls12381G1Key2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"revoked\": {\n \"@id\": \"https://w3id.org/security#revoked\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"publicKeyBase58\": {\n \"@id\": \"https://w3id.org/security#publicKeyBase58\"\n }\n }\n },\n \"Bls12381G2Key2020\": {\n \"@id\": \"https://w3id.org/security#Bls12381G2Key2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"revoked\": {\n \"@id\": \"https://w3id.org/security#revoked\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"publicKeyBase58\": {\n \"@id\": \"https://w3id.org/security#publicKeyBase58\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"alsoKnownAs\": {\n \"@id\": \"https://www.w3.org/ns/activitystreams#alsoKnownAs\",\n \"@type\": \"@id\"\n },\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"service\": {\n \"@id\": \"https://www.w3.org/ns/did#service\",\n \"@type\": \"@id\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"serviceEndpoint\": {\n \"@id\": \"https://www.w3.org/ns/did#serviceEndpoint\",\n \"@type\": \"@id\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n}\n","{\n \"@context\": {\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"dc\": \"http://purl.org/dc/terms/\",\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"EcdsaKoblitzSignature2016\": \"sec:EcdsaKoblitzSignature2016\",\n \"Ed25519Signature2018\": \"sec:Ed25519Signature2018\",\n \"EncryptedMessage\": \"sec:EncryptedMessage\",\n \"GraphSignature2012\": \"sec:GraphSignature2012\",\n \"LinkedDataSignature2015\": \"sec:LinkedDataSignature2015\",\n \"LinkedDataSignature2016\": \"sec:LinkedDataSignature2016\",\n \"CryptographicKey\": \"sec:Key\",\n\n \"authenticationTag\": \"sec:authenticationTag\",\n \"canonicalizationAlgorithm\": \"sec:canonicalizationAlgorithm\",\n \"cipherAlgorithm\": \"sec:cipherAlgorithm\",\n \"cipherData\": \"sec:cipherData\",\n \"cipherKey\": \"sec:cipherKey\",\n \"created\": { \"@id\": \"dc:created\", \"@type\": \"xsd:dateTime\" },\n \"creator\": { \"@id\": \"dc:creator\", \"@type\": \"@id\" },\n \"digestAlgorithm\": \"sec:digestAlgorithm\",\n \"digestValue\": \"sec:digestValue\",\n \"domain\": \"sec:domain\",\n \"encryptionKey\": \"sec:encryptionKey\",\n \"expiration\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"initializationVector\": \"sec:initializationVector\",\n \"iterationCount\": \"sec:iterationCount\",\n \"nonce\": \"sec:nonce\",\n \"normalizationAlgorithm\": \"sec:normalizationAlgorithm\",\n \"owner\": { \"@id\": \"sec:owner\", \"@type\": \"@id\" },\n \"password\": \"sec:password\",\n \"privateKey\": { \"@id\": \"sec:privateKey\", \"@type\": \"@id\" },\n \"privateKeyPem\": \"sec:privateKeyPem\",\n \"publicKey\": { \"@id\": \"sec:publicKey\", \"@type\": \"@id\" },\n \"publicKeyBase58\": \"sec:publicKeyBase58\",\n \"publicKeyPem\": \"sec:publicKeyPem\",\n \"publicKeyWif\": \"sec:publicKeyWif\",\n \"publicKeyService\": { \"@id\": \"sec:publicKeyService\", \"@type\": \"@id\" },\n \"revoked\": { \"@id\": \"sec:revoked\", \"@type\": \"xsd:dateTime\" },\n \"salt\": \"sec:salt\",\n \"signature\": \"sec:signature\",\n \"signatureAlgorithm\": \"sec:signingAlgorithm\",\n \"signatureValue\": \"sec:signatureValue\"\n }\n}\n","{\n \"@context\": [\n {\n \"@version\": 1.1\n },\n \"https://w3id.org/security/v1\",\n {\n \"AesKeyWrappingKey2019\": \"sec:AesKeyWrappingKey2019\",\n \"DeleteKeyOperation\": \"sec:DeleteKeyOperation\",\n \"DeriveSecretOperation\": \"sec:DeriveSecretOperation\",\n \"EcdsaSecp256k1Signature2019\": \"sec:EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256r1Signature2019\": \"sec:EcdsaSecp256r1Signature2019\",\n \"EcdsaSecp256k1VerificationKey2019\": \"sec:EcdsaSecp256k1VerificationKey2019\",\n \"EcdsaSecp256r1VerificationKey2019\": \"sec:EcdsaSecp256r1VerificationKey2019\",\n \"Ed25519Signature2018\": \"sec:Ed25519Signature2018\",\n \"Ed25519VerificationKey2018\": \"sec:Ed25519VerificationKey2018\",\n \"EquihashProof2018\": \"sec:EquihashProof2018\",\n \"ExportKeyOperation\": \"sec:ExportKeyOperation\",\n \"GenerateKeyOperation\": \"sec:GenerateKeyOperation\",\n \"KmsOperation\": \"sec:KmsOperation\",\n \"RevokeKeyOperation\": \"sec:RevokeKeyOperation\",\n \"RsaSignature2018\": \"sec:RsaSignature2018\",\n \"RsaVerificationKey2018\": \"sec:RsaVerificationKey2018\",\n \"Sha256HmacKey2019\": \"sec:Sha256HmacKey2019\",\n \"SignOperation\": \"sec:SignOperation\",\n \"UnwrapKeyOperation\": \"sec:UnwrapKeyOperation\",\n \"VerifyOperation\": \"sec:VerifyOperation\",\n \"WrapKeyOperation\": \"sec:WrapKeyOperation\",\n \"X25519KeyAgreementKey2019\": \"sec:X25519KeyAgreementKey2019\",\n\n \"allowedAction\": \"sec:allowedAction\",\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"capability\": { \"@id\": \"sec:capability\", \"@type\": \"@id\" },\n \"capabilityAction\": \"sec:capabilityAction\",\n \"capabilityChain\": { \"@id\": \"sec:capabilityChain\", \"@type\": \"@id\", \"@container\": \"@list\" },\n \"capabilityDelegation\": { \"@id\": \"sec:capabilityDelegationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"capabilityInvocation\": { \"@id\": \"sec:capabilityInvocationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"caveat\": { \"@id\": \"sec:caveat\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"challenge\": \"sec:challenge\",\n \"ciphertext\": \"sec:ciphertext\",\n \"controller\": { \"@id\": \"sec:controller\", \"@type\": \"@id\" },\n \"delegator\": { \"@id\": \"sec:delegator\", \"@type\": \"@id\" },\n \"equihashParameterK\": { \"@id\": \"sec:equihashParameterK\", \"@type\": \"xsd:integer\" },\n \"equihashParameterN\": { \"@id\": \"sec:equihashParameterN\", \"@type\": \"xsd:integer\" },\n \"invocationTarget\": { \"@id\": \"sec:invocationTarget\", \"@type\": \"@id\" },\n \"invoker\": { \"@id\": \"sec:invoker\", \"@type\": \"@id\" },\n \"jws\": \"sec:jws\",\n \"keyAgreement\": { \"@id\": \"sec:keyAgreementMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"kmsModule\": { \"@id\": \"sec:kmsModule\" },\n \"parentCapability\": { \"@id\": \"sec:parentCapability\", \"@type\": \"@id\" },\n \"plaintext\": \"sec:plaintext\",\n \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n \"proofPurpose\": { \"@id\": \"sec:proofPurpose\", \"@type\": \"@vocab\" },\n \"proofValue\": \"sec:proofValue\",\n \"referenceId\": \"sec:referenceId\",\n \"unwrappedKey\": \"sec:unwrappedKey\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" },\n \"verifyData\": \"sec:verifyData\",\n \"wrappedKey\": \"sec:wrappedKey\"\n }\n ]\n}\n","{\n \"@context\": [\n {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"JsonWebKey2020\": {\n \"@id\": \"https://w3id.org/security#JsonWebKey2020\"\n },\n \"JsonWebSignature2020\": {\n \"@id\": \"https://w3id.org/security#JsonWebSignature2020\",\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"Ed25519VerificationKey2020\": {\n \"@id\": \"https://w3id.org/security#Ed25519VerificationKey2020\"\n },\n \"Ed25519Signature2020\": {\n \"@id\": \"https://w3id.org/security#Ed25519Signature2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": {\n \"@id\": \"https://w3id.org/security#proofValue\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"publicKeyJwk\": {\n \"@id\": \"https://w3id.org/security#publicKeyJwk\",\n \"@type\": \"@json\"\n },\n \"ethereumAddress\": {\n \"@id\": \"https://w3id.org/security#ethereumAddress\"\n },\n \"publicKeyHex\": {\n \"@id\": \"https://w3id.org/security#publicKeyHex\"\n },\n \"blockchainAccountId\": {\n \"@id\": \"https://w3id.org/security#blockchainAccountId\"\n },\n \"MerkleProof2019\": {\n \"@id\": \"https://w3id.org/security#MerkleProof2019\"\n },\n \"Bls12381G1Key2020\": {\n \"@id\": \"https://w3id.org/security#Bls12381G1Key2020\"\n },\n \"Bls12381G2Key2020\": {\n \"@id\": \"https://w3id.org/security#Bls12381G2Key2020\"\n },\n \"BbsBlsSignature2020\": {\n \"@id\": \"https://w3id.org/security#BbsBlsSignature2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"BbsBlsSignatureProof2020\": {\n \"@id\": \"https://w3id.org/security#BbsBlsSignatureProof2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n\n \"EcdsaKoblitzSignature2016\": \"https://w3id.org/security#EcdsaKoblitzSignature2016\",\n \"Ed25519Signature2018\": {\n \"@id\": \"https://w3id.org/security#Ed25519Signature2018\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"EncryptedMessage\": \"https://w3id.org/security#EncryptedMessage\",\n \"GraphSignature2012\": \"https://w3id.org/security#GraphSignature2012\",\n \"LinkedDataSignature2015\": \"https://w3id.org/security#LinkedDataSignature2015\",\n \"LinkedDataSignature2016\": \"https://w3id.org/security#LinkedDataSignature2016\",\n \"CryptographicKey\": \"https://w3id.org/security#Key\",\n \"authenticationTag\": \"https://w3id.org/security#authenticationTag\",\n \"canonicalizationAlgorithm\": \"https://w3id.org/security#canonicalizationAlgorithm\",\n \"cipherAlgorithm\": \"https://w3id.org/security#cipherAlgorithm\",\n \"cipherData\": \"https://w3id.org/security#cipherData\",\n \"cipherKey\": \"https://w3id.org/security#cipherKey\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"creator\": {\n \"@id\": \"http://purl.org/dc/terms/creator\",\n \"@type\": \"@id\"\n },\n \"digestAlgorithm\": \"https://w3id.org/security#digestAlgorithm\",\n \"digestValue\": \"https://w3id.org/security#digestValue\",\n \"domain\": \"https://w3id.org/security#domain\",\n \"encryptionKey\": \"https://w3id.org/security#encryptionKey\",\n \"expiration\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"initializationVector\": \"https://w3id.org/security#initializationVector\",\n \"iterationCount\": \"https://w3id.org/security#iterationCount\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"normalizationAlgorithm\": \"https://w3id.org/security#normalizationAlgorithm\",\n \"owner\": \"https://w3id.org/security#owner\",\n \"password\": \"https://w3id.org/security#password\",\n \"privateKey\": \"https://w3id.org/security#privateKey\",\n \"privateKeyPem\": \"https://w3id.org/security#privateKeyPem\",\n \"publicKey\": \"https://w3id.org/security#publicKey\",\n \"publicKeyBase58\": \"https://w3id.org/security#publicKeyBase58\",\n \"publicKeyPem\": \"https://w3id.org/security#publicKeyPem\",\n \"publicKeyWif\": \"https://w3id.org/security#publicKeyWif\",\n \"publicKeyService\": \"https://w3id.org/security#publicKeyService\",\n \"revoked\": {\n \"@id\": \"https://w3id.org/security#revoked\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"salt\": \"https://w3id.org/security#salt\",\n \"signature\": \"https://w3id.org/security#signature\",\n \"signatureAlgorithm\": \"https://w3id.org/security#signingAlgorithm\",\n \"signatureValue\": \"https://w3id.org/security#signatureValue\",\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n\n \"AesKeyWrappingKey2019\": \"https://w3id.org/security#AesKeyWrappingKey2019\",\n \"DeleteKeyOperation\": \"https://w3id.org/security#DeleteKeyOperation\",\n \"DeriveSecretOperation\": \"https://w3id.org/security#DeriveSecretOperation\",\n \"EcdsaSecp256k1Signature2019\": {\n \"@id\": \"https://w3id.org/security#EcdsaSecp256k1Signature2019\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"EcdsaSecp256r1Signature2019\": {\n \"@id\": \"https://w3id.org/security#EcdsaSecp256r1Signature2019\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"EcdsaSecp256k1VerificationKey2019\": \"https://w3id.org/security#EcdsaSecp256k1VerificationKey2019\",\n \"EcdsaSecp256r1VerificationKey2019\": \"https://w3id.org/security#EcdsaSecp256r1VerificationKey2019\",\n \"Ed25519VerificationKey2018\": \"https://w3id.org/security#Ed25519VerificationKey2018\",\n \"EquihashProof2018\": \"https://w3id.org/security#EquihashProof2018\",\n \"ExportKeyOperation\": \"https://w3id.org/security#ExportKeyOperation\",\n \"GenerateKeyOperation\": \"https://w3id.org/security#GenerateKeyOperation\",\n \"KmsOperation\": \"https://w3id.org/security#KmsOperation\",\n \"RevokeKeyOperation\": \"https://w3id.org/security#RevokeKeyOperation\",\n \"RsaSignature2018\": {\n \"@id\": \"https://w3id.org/security#RsaSignature2018\",\n \"@context\": {\n \"@protected\": true,\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"RsaVerificationKey2018\": \"https://w3id.org/security#RsaVerificationKey2018\",\n \"Sha256HmacKey2019\": \"https://w3id.org/security#Sha256HmacKey2019\",\n \"SignOperation\": \"https://w3id.org/security#SignOperation\",\n \"UnwrapKeyOperation\": \"https://w3id.org/security#UnwrapKeyOperation\",\n \"VerifyOperation\": \"https://w3id.org/security#VerifyOperation\",\n \"WrapKeyOperation\": \"https://w3id.org/security#WrapKeyOperation\",\n \"X25519KeyAgreementKey2019\": \"https://w3id.org/security#X25519KeyAgreementKey2019\",\n\n \"allowedAction\": \"https://w3id.org/security#allowedAction\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capability\": {\n \"@id\": \"https://w3id.org/security#capability\",\n \"@type\": \"@id\"\n },\n \"capabilityAction\": \"https://w3id.org/security#capabilityAction\",\n \"capabilityChain\": {\n \"@id\": \"https://w3id.org/security#capabilityChain\",\n \"@type\": \"@id\",\n \"@container\": \"@list\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"caveat\": {\n \"@id\": \"https://w3id.org/security#caveat\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"ciphertext\": \"https://w3id.org/security#ciphertext\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"delegator\": {\n \"@id\": \"https://w3id.org/security#delegator\",\n \"@type\": \"@id\"\n },\n \"equihashParameterK\": {\n \"@id\": \"https://w3id.org/security#equihashParameterK\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#:integer\"\n },\n \"equihashParameterN\": {\n \"@id\": \"https://w3id.org/security#equihashParameterN\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#:integer\"\n },\n \"invocationTarget\": {\n \"@id\": \"https://w3id.org/security#invocationTarget\",\n \"@type\": \"@id\"\n },\n \"invoker\": {\n \"@id\": \"https://w3id.org/security#invoker\",\n \"@type\": \"@id\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"kmsModule\": {\n \"@id\": \"https://w3id.org/security#kmsModule\"\n },\n \"parentCapability\": {\n \"@id\": \"https://w3id.org/security#parentCapability\",\n \"@type\": \"@id\"\n },\n \"plaintext\": \"https://w3id.org/security#plaintext\",\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"referenceId\": \"https://w3id.org/security#referenceId\",\n \"unwrappedKey\": \"https://w3id.org/security#unwrappedKey\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n },\n \"verifyData\": \"https://w3id.org/security#verifyData\",\n \"wrappedKey\": \"https://w3id.org/security#wrappedKey\",\n \"x509CertificateChain\": {\n \"@id\": \"https://w3id.org/security#x509CertificateChain\",\n \"@type\": \"https://w3id.org/security#multibase\",\n \"@container\": \"@list\"\n },\n \"x509CertificateFingerprint\": {\n \"@id\": \"https://w3id.org/security#x509CertificateFingerprint\",\n \"@type\": \"https://w3id.org/security#multibase\"\n }\n }\n ]\n}\n","{\n \"@context\": [\n {\n \"@version\": 1.1\n },\n \"https://w3id.org/security/v1\",\n {\n \"AesKeyWrappingKey2019\": \"sec:AesKeyWrappingKey2019\",\n \"DeleteKeyOperation\": \"sec:DeleteKeyOperation\",\n \"DeriveSecretOperation\": \"sec:DeriveSecretOperation\",\n \"EcdsaSecp256k1Signature2019\": \"sec:EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256r1Signature2019\": \"sec:EcdsaSecp256r1Signature2019\",\n \"EcdsaSecp256k1VerificationKey2019\": \"sec:EcdsaSecp256k1VerificationKey2019\",\n \"EcdsaSecp256r1VerificationKey2019\": \"sec:EcdsaSecp256r1VerificationKey2019\",\n \"Ed25519Signature2018\": \"sec:Ed25519Signature2018\",\n \"Ed25519VerificationKey2018\": \"sec:Ed25519VerificationKey2018\",\n \"EquihashProof2018\": \"sec:EquihashProof2018\",\n \"ExportKeyOperation\": \"sec:ExportKeyOperation\",\n \"GenerateKeyOperation\": \"sec:GenerateKeyOperation\",\n \"KmsOperation\": \"sec:KmsOperation\",\n \"RevokeKeyOperation\": \"sec:RevokeKeyOperation\",\n \"RsaSignature2018\": \"sec:RsaSignature2018\",\n \"RsaVerificationKey2018\": \"sec:RsaVerificationKey2018\",\n \"Sha256HmacKey2019\": \"sec:Sha256HmacKey2019\",\n \"SignOperation\": \"sec:SignOperation\",\n \"UnwrapKeyOperation\": \"sec:UnwrapKeyOperation\",\n \"VerifyOperation\": \"sec:VerifyOperation\",\n \"WrapKeyOperation\": \"sec:WrapKeyOperation\",\n \"X25519KeyAgreementKey2019\": \"sec:X25519KeyAgreementKey2019\",\n\n \"allowedAction\": \"sec:allowedAction\",\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"capability\": { \"@id\": \"sec:capability\", \"@type\": \"@id\" },\n \"capabilityAction\": \"sec:capabilityAction\",\n \"capabilityChain\": { \"@id\": \"sec:capabilityChain\", \"@type\": \"@id\", \"@container\": \"@list\" },\n \"capabilityDelegation\": { \"@id\": \"sec:capabilityDelegationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"capabilityInvocation\": { \"@id\": \"sec:capabilityInvocationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"caveat\": { \"@id\": \"sec:caveat\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"challenge\": \"sec:challenge\",\n \"ciphertext\": \"sec:ciphertext\",\n \"controller\": { \"@id\": \"sec:controller\", \"@type\": \"@id\" },\n \"delegator\": { \"@id\": \"sec:delegator\", \"@type\": \"@id\" },\n \"equihashParameterK\": { \"@id\": \"sec:equihashParameterK\", \"@type\": \"xsd:integer\" },\n \"equihashParameterN\": { \"@id\": \"sec:equihashParameterN\", \"@type\": \"xsd:integer\" },\n \"invocationTarget\": { \"@id\": \"sec:invocationTarget\", \"@type\": \"@id\" },\n \"invoker\": { \"@id\": \"sec:invoker\", \"@type\": \"@id\" },\n \"jws\": \"sec:jws\",\n \"keyAgreement\": { \"@id\": \"sec:keyAgreementMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"kmsModule\": { \"@id\": \"sec:kmsModule\" },\n \"parentCapability\": { \"@id\": \"sec:parentCapability\", \"@type\": \"@id\" },\n \"plaintext\": \"sec:plaintext\",\n \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n \"proofPurpose\": { \"@id\": \"sec:proofPurpose\", \"@type\": \"@vocab\" },\n \"proofValue\": \"sec:proofValue\",\n \"referenceId\": \"sec:referenceId\",\n \"unwrappedKey\": \"sec:unwrappedKey\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" },\n \"verifyData\": \"sec:verifyData\",\n \"wrappedKey\": \"sec:wrappedKey\"\n }\n ]\n}\n","{\n \"@context\": {\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"X25519KeyAgreementKey2019\": {\n \"@id\": \"https://w3id.org/security#X25519KeyAgreementKey2019\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"revoked\": {\n \"@id\": \"https://w3id.org/security#revoked\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"publicKeyBase58\": {\n \"@id\": \"https://w3id.org/security#publicKeyBase58\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"Profile\": \"https://veramo.io/contexts/profile#Profile\",\n \"name\": \"https://schema.org/name\"\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"esrs2020\": \"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#\",\n \"EcdsaSecp256k1RecoverySignature2020\": \"esrs2020:EcdsaSecp256k1RecoverySignature2020\",\n \"EcdsaSecp256k1RecoveryMethod2020\": \"esrs2020:EcdsaSecp256k1RecoveryMethod2020\",\n \"publicKeyJwk\": {\n \"@id\": \"esrs2020:publicKeyJwk\",\n \"@type\": \"@json\"\n },\n \"privateKeyJwk\": {\n \"@id\": \"esrs2020:privateKeyJwk\",\n \"@type\": \"@json\"\n },\n \"publicKeyHex\": \"esrs2020:publicKeyHex\",\n \"privateKeyHex\": \"esrs2020:privateKeyHex\",\n \"ethereumAddress\": \"esrs2020:ethereumAddress\"\n }\n}\n","{\n \"@context\": {\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"EcdsaSecp256k1RecoveryMethod2020\": {\n \"@id\": \"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoveryMethod2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"blockchainAccountId\": \"https://w3id.org/security#blockchainAccountId\",\n \"publicKeyJwk\": {\n \"@id\": \"https://w3id.org/security#publicKeyJwk\",\n \"@type\": \"@json\"\n }\n }\n },\n \"EcdsaSecp256k1RecoverySignature2020\": {\n \"@id\": \"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoverySignature2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"Ed25519VerificationKey2020\": {\n \"@id\": \"https://w3id.org/security#Ed25519VerificationKey2020\"\n },\n \"Ed25519Signature2020\": {\n \"@id\": \"https://w3id.org/security#Ed25519Signature2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": {\n \"@id\": \"https://w3id.org/security#proofValue\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"JsonWebKey2020\": {\n \"@id\": \"https://w3id.org/security#JsonWebKey2020\"\n },\n \"JsonWebSignature2020\": {\n \"@id\": \"https://w3id.org/security#JsonWebSignature2020\",\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"Eip712SchemaValidator2021\": \"https://w3id.org/security#Eip712SchemaValidator2021\",\n \"EthereumEip712Signature2021\": {\n \"@id\": \"https://w3id.org/security#EthereumEip712Signature2021\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"eip712Domain\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#eip712-domain\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"messageSchema\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#message-schema\",\n \"@type\": \"@json\"\n },\n \"primaryType\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#primary-type\",\n \"domain\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#domain\",\n \"@type\": \"@json\"\n }\n }\n },\n \"eip712\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#eip712-domain\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"types\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#message-schema\",\n \"@type\": \"@json\"\n },\n \"primaryType\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#primary-type\",\n \"domain\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#domain\",\n \"@type\": \"@json\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n },\n \"canonicalizationHash\": \"https://w3id.org/security/suites/eip712sig-2021#canonicalizationHash\"\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"name\": \"http://schema.org/name\",\n \"description\": \"http://schema.org/description\",\n \"identifier\": \"http://schema.org/identifier\",\n \"image\": { \"@id\": \"http://schema.org/image\", \"@type\": \"@id\" },\n\n \"PermanentResidentCard\": {\n \"@id\": \"https://w3id.org/citizenship#PermanentResidentCard\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"description\": \"http://schema.org/description\",\n \"name\": \"http://schema.org/name\",\n \"identifier\": \"http://schema.org/identifier\",\n \"image\": { \"@id\": \"http://schema.org/image\", \"@type\": \"@id\" }\n }\n },\n\n \"PermanentResident\": {\n \"@id\": \"https://w3id.org/citizenship#PermanentResident\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"ctzn\": \"https://w3id.org/citizenship#\",\n \"schema\": \"http://schema.org/\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"birthCountry\": \"ctzn:birthCountry\",\n \"birthDate\": { \"@id\": \"schema:birthDate\", \"@type\": \"xsd:dateTime\" },\n \"commuterClassification\": \"ctzn:commuterClassification\",\n \"familyName\": \"schema:familyName\",\n \"gender\": \"schema:gender\",\n \"givenName\": \"schema:givenName\",\n \"lprCategory\": \"ctzn:lprCategory\",\n \"lprNumber\": \"ctzn:lprNumber\",\n \"residentSince\": { \"@id\": \"ctzn:residentSince\", \"@type\": \"xsd:dateTime\" }\n }\n },\n\n \"Person\": \"http://schema.org/Person\"\n }\n}\n","{\n \"@context\": {\n \"@protected\": true,\n\n \"RevocationList2020Credential\": {\n \"@id\": \"https://w3id.org/vc-revocation-list-2020#RevocationList2020Credential\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"description\": \"http://schema.org/description\",\n \"name\": \"http://schema.org/name\"\n }\n },\n\n \"RevocationList2020\": {\n \"@id\": \"https://w3id.org/vc-revocation-list-2020#RevocationList2020\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"encodedList\": \"https://w3id.org/vc-revocation-list-2020#encodedList\"\n }\n },\n\n \"RevocationList2020Status\": {\n \"@id\": \"https://w3id.org/vc-revocation-list-2020#RevocationList2020Status\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"revocationListCredential\": {\n \"@id\": \"https://w3id.org/vc-revocation-list-2020#revocationListCredential\",\n \"@type\": \"@id\"\n },\n \"revocationListIndex\": \"https://w3id.org/vc-revocation-list-2020#revocationListIndex\"\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@protected\": true,\n\n \"StatusList2021Credential\": {\n \"@id\": \"https://w3id.org/vc/status-list#StatusList2021Credential\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"description\": \"http://schema.org/description\",\n \"name\": \"http://schema.org/name\"\n }\n },\n\n \"StatusList2021\": {\n \"@id\": \"https://w3id.org/vc/status-list#StatusList2021\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"statusPurpose\": \"https://w3id.org/vc/status-list#statusPurpose\",\n \"encodedList\": \"https://w3id.org/vc/status-list#encodedList\"\n }\n },\n\n \"StatusList2021Entry\": {\n \"@id\": \"https://w3id.org/vc/status-list#StatusList2021Entry\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"statusPurpose\": \"https://w3id.org/vc/status-list#statusPurpose\",\n \"statusListIndex\": \"https://w3id.org/vc/status-list#statusListIndex\",\n \"statusListCredential\": {\n \"@id\": \"https://w3id.org/vc/status-list#statusListCredential\",\n \"@type\": \"@id\"\n }\n }\n }\n }\n}\n","const contextCredentialV1 = require('./contexts/www.w3.org_2018_credentials_v1.json') // assert { type: 'json' }\nconst contextCredentialV2 = require('./contexts/www.w3.org_ns_credentials_v2.json') // assert { type: 'json' }\nimport contextBBSV1 from './contexts/bbs-bls-signature-2020-v1.json'\nimport contextDidV1 from './contexts/www.w3.org_ns_did_v1.json' //assert { type: 'json' }\nimport contextSecurityV1 from './contexts/w3id.org_security_v1.json' //assert { type: 'json' }\nimport contextSecurityV2 from './contexts/w3id.org_security_v2.json' //assert { type: 'json' }\nimport contextSecurityV3 from './contexts/w3id.org_security_v3-unstable.json' //assert { type: 'json' }\nimport contextSuitesEd25519_2018 from './contexts/w3id.org_security_suites_ed25519-2018_v1.json' //assert { type: 'json' }\nimport contextSuitesX25519 from './contexts/w3id.org_security_suites_x25519-2019_v1.json' //assert { type: 'json' }\nimport contextProfile from './contexts/veramo.io_contexts_profile_v1.json' //assert { type: 'json' }\nimport contextLdsEcdsaSecpRecovery2020_0 from './contexts/lds-ecdsa-secp256k1-recovery2020-0.0.json' // assert { type: 'json' }\nimport contextLdsEcdsaSecpRecovery2020_2 from './contexts/w3id.org_security_suites_secp256k1recovery-2020_v2.json' //assert { type: 'json' }\nimport contextSuitesSecp from './contexts/w3id.org_security_suites_secp256k1recovery-2020_v2.json' //assert { type: 'json' }\nimport contextSuitesEd25519_2020 from './contexts/ed25519-signature-2020-v1.json' //assert { type: 'json' }\nimport contextSuitesJws_2020 from './contexts/json-web-signature-2020-v1.json' // assert { type: 'json' }\nimport contextSuiteEip712 from './contexts/eip712.json' // assert { type: 'json' }\nimport contextCitizenshipV1 from './contexts/citizenship-v1.json' // assert { type: 'json' }\nimport contextVCRevocationList2020 from './contexts/vc-revocation-list-2020-v1.json' // assert { type: 'json' }\nimport contextVCStatusList2021 from './contexts/vc-status-list-2021-v1.json' // assert { type: 'json' }\n\n/**\n * Provides a hardcoded map of common context definitions\n */\nexport const LdDefaultContexts = new Map([\n ['https://www.w3.org/2018/credentials/v1', contextCredentialV1],\n ['https://www.w3.org/ns/credentials/v2', contextCredentialV2],\n ['https://w3.org/ns/credentials/v2', contextCredentialV2],\n ['https://w3id.org/security/bbs/v1', contextBBSV1],\n ['https://w3id.org/did/v1', contextDidV1],\n ['https://w3.org/ns/did/v1', contextDidV1],\n ['https://www.w3.org/ns/did/v1', contextDidV1],\n ['https://w3id.org/security/v1', contextSecurityV1],\n ['https://w3id.org/security/v2', contextSecurityV2],\n ['https://w3id.org/security/v3-unstable', contextSecurityV3],\n ['https://w3id.org/security/suites/ed25519-2018/v1', contextSuitesEd25519_2018],\n ['https://w3id.org/security/suites/x25519-2019/v1', contextSuitesX25519],\n ['https://w3id.org/security/suites/ed25519-2020/v1', contextSuitesEd25519_2020],\n ['https://w3id.org/security/suites/jws-2020/v1', contextSuitesJws_2020],\n ['https://veramo.io/contexts/profile/v1', contextProfile],\n ['https://w3id.org/citizenship/v1', contextCitizenshipV1],\n ['https://w3id.org/vc-revocation-list-2020', contextVCRevocationList2020],\n ['https://w3id.org/vc/status-list/v1', contextVCStatusList2021], // Unfortunately also listed in the spec\n ['https://w3id.org/vc/status-list/2021/v1', contextVCStatusList2021],\n ['https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld', contextLdsEcdsaSecpRecovery2020_0],\n ['https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-2.0.jsonld', contextLdsEcdsaSecpRecovery2020_2],\n ['https://w3id.org/security/suites/secp256k1recovery-2020/v2', contextSuitesSecp],\n ['https://w3id.org/security/suites/eip712sig-2021', contextSuiteEip712],\n ['https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/', contextSuiteEip712],\n])\n","import { getAgentResolver, mapIdentifierKeysToDocWithJwkSupport } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { asArray, intersect, VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core'\nimport {\n ContextDoc,\n ICanIssueCredentialTypeArgs,\n ICanVerifyDocumentTypeArgs,\n ICreateVerifiableCredentialLDArgs,\n ICreateVerifiablePresentationLDArgs,\n IVcdmCredentialProvider,\n IVcdmIssuerAgentContext,\n IVcdmVerifierAgentContext,\n IVerifyCredentialVcdmArgs,\n IVerifyPresentationLDArgs,\n preProcessCredentialPayload,\n preProcessPresentation\n} from '@sphereon/ssi-sdk.credential-vcdm'\nimport { vcLibCheckStatusFunction } from '@sphereon/ssi-sdk.vc-status-list'\nimport { IVerifyResult } from '@sphereon/ssi-types'\nimport type {\n DIDDocument,\n IAgentContext,\n IDIDManager,\n IIdentifier,\n IKey,\n IResolver,\n VerifiableCredential\n} from '@veramo/core'\nimport { AbstractPrivateKeyStore } from '@veramo/key-manager'\nimport { type _ExtendedIKey, type OrPromise, type RecordLike } from '@veramo/utils'\nimport Debug from 'debug'\n\nimport { LdContextLoader } from '../ld-context-loader'\nimport { LdCredentialModule } from '../ld-credential-module'\nimport { LdDefaultContexts } from '../ld-default-contexts'\nimport { LdSuiteLoader } from '../ld-suite-loader'\nimport { SphereonLdSignature } from '../ld-suites'\nimport { SphereonEcdsaSecp256k1RecoverySignature2020, SphereonEd25519Signature2020 } from '../suites'\n\nconst debug = Debug('sphereon:ssi-sdk:ld-credential-module-local')\n\n/**\n * {@inheritDoc IVcLocalIssuerJsonLd}\n */\nexport class CredentialProviderJsonld implements IVcdmCredentialProvider {\n private ldCredentialModule: LdCredentialModule\n private keyStore?: AbstractPrivateKeyStore\n\n constructor(options: {\n contextMaps?: RecordLike<OrPromise<ContextDoc>>[]\n suites?: SphereonLdSignature[]\n keyStore?: AbstractPrivateKeyStore\n documentLoader?: {\n localResolution?: boolean // Resolve identifiers hosted by the agent\n uniresolverResolution?: boolean // Resolve identifiers using universal resolver\n resolverResolution?: boolean // Use registered drivers\n }\n }) {\n this.keyStore = options.keyStore\n this.ldCredentialModule = new LdCredentialModule({\n ldContextLoader: new LdContextLoader({ contextsPaths: options.contextMaps ?? [LdDefaultContexts] }),\n ldSuiteLoader: new LdSuiteLoader({\n ldSignatureSuites: options.suites ?? [new SphereonEd25519Signature2020(), new SphereonEcdsaSecp256k1RecoverySignature2020()],\n }),\n documentLoader: options?.documentLoader,\n })\n\n // this.overrideBindings(options.bindingOverrides)\n }\n /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.matchKeyForType} */\n matchKeyForType(key: IKey): boolean {\n return this.matchKeyForLDSuite(key)\n }\n\n /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.getTypeProofFormat} */\n getTypeProofFormat(): string {\n return 'lds'\n }\n\n /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.canIssueCredentialType} */\n canIssueCredentialType(args: ICanIssueCredentialTypeArgs): boolean {\n return args.proofFormat === 'lds'\n }\n\n /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.canVerifyDocumentType */\n canVerifyDocumentType(args: ICanVerifyDocumentTypeArgs): boolean {\n const { document } = args\n if (typeof document === 'string') {\n return false\n }\n const proofType = (<VerifiableCredential>document)?.proof?.type ?? '_never_'\n for (const suite of this.ldCredentialModule.ldSuiteLoader.getAllSignatureSuites()) {\n if (suite.getSupportedProofType() === proofType) {\n return true\n } else if (asArray(suite.getSupportedVerificationType()).includes(proofType)) {\n return true\n }\n }\n\n return false\n }\n\n /** {@inheritDoc ICredentialIssuerLDLocal.createVerifiableCredential} */\n async createVerifiableCredential(args: ICreateVerifiableCredentialLDArgs, context: IVcdmIssuerAgentContext): Promise<VerifiableCredentialSP> {\n debug('Entry of createVerifiableCredential')\n const { credential, issuer } = preProcessCredentialPayload(args)\n\n let identifier: IIdentifier\n try {\n debug(`Retrieving identifier for issuer ${issuer} from DID manager...`)\n identifier = await context.agent.didManagerGet({ did: issuer })\n debug(`Identifier for issuer ${issuer} retrieved from DID manager`)\n } catch (e) {\n throw new Error(`invalid_argument: args.credential.issuer must be a DID managed by this agent. ${e}`)\n }\n try {\n const { managedKey, verificationMethod } = await this.getSigningKey(identifier, args.keyRef)\n const { signingKey, verificationMethodId } = await this.findSigningKeyWithId(context, identifier, { keyRef: args.keyRef })\n return await this.ldCredentialModule.issueLDVerifiableCredential(\n {\n credential,\n issuerDid: identifier.did,\n key: managedKey ?? signingKey, // todo: signingKey does not have the private key, so would never work\n verificationMethodId: verificationMethodId ?? (verificationMethod as string),\n purpose: args.purpose,\n credentialStatusOpts: args.credentialStatusOpts,\n },\n context,\n )\n } catch (error) {\n debug(error)\n return Promise.reject(error)\n }\n }\n\n async getSigningKey(identifier: IIdentifier, keyRef?: string) {\n let managedKey: IKey | undefined\n let verificationMethod: string | undefined\n if (keyRef) {\n const k = await this.keyStore?.get({ alias: keyRef })\n if (k?.privateKeyHex) {\n managedKey = {\n ...identifier.keys.find((k) => k.kid === keyRef),\n privateKeyHex: k.privateKeyHex as string,\n } as IKey\n verificationMethod = `${identifier.did}#${managedKey.kid ? managedKey.kid : k.alias}`\n }\n }\n return { managedKey, verificationMethod }\n }\n\n /** {@inheritdoc ICredentialIssuerLD.createVerifiablePresentationLD} */\n async createVerifiablePresentation(args: ICreateVerifiablePresentationLDArgs, context: IVcdmIssuerAgentContext): Promise<VerifiablePresentationSP> {\n const { presentation, holder } = preProcessPresentation(args)\n\n if (presentation.verifiableCredential) {\n const credentials = presentation.verifiableCredential.map((cred) => {\n if (typeof cred !== 'string' && cred.proof?.jwt) {\n return cred.proof.jwt\n } else {\n return cred\n }\n })\n presentation.verifiableCredential = credentials\n }\n\n //issuanceDate/validFrom must not be present for presentations because it is not defined in a @context\n delete presentation.issuanceDate\n delete presentation.validFrom\n\n let identifier: IIdentifier\n try {\n identifier = await context.agent.didManagerGet({ did: holder })\n } catch (e) {\n throw new Error(`invalid_argument: args.presentation.holderDID ${holder} must be a DID managed by this agent`)\n }\n try {\n const { managedKey, verificationMethod } = await this.getSigningKey(identifier, args.keyRef)\n const { signingKey, verificationMethodId } = await this.findSigningKeyWithId(context, identifier, { keyRef: args.keyRef })\n\n return await this.ldCredentialModule.signLDVerifiablePresentation(\n presentation,\n identifier.did,\n managedKey || signingKey, // todo: signingKey does not have the private key, so would never work\n verificationMethodId ? verificationMethodId : (verificationMethod as string),\n args.challenge,\n args.domain,\n args.purpose,\n context,\n )\n } catch (error) {\n debug(error)\n return Promise.reject(error)\n }\n }\n\n /** {@inheritdoc ICredentialHandlerLDLocal.verifyCredential} */\n async verifyCredential(args: IVerifyCredentialVcdmArgs, context: IVcdmVerifierAgentContext): Promise<IVerifyResult> {\n const credential = args.credential\n let checkStatus = args.checkStatus\n if (typeof checkStatus !== 'function' && (!args.statusList || args.statusList.disableCheckStatusList2021 !== true)) {\n checkStatus = vcLibCheckStatusFunction({\n ...args.statusList,\n verifyStatusListCredential: false /*todo: enable. Needs calling this method first and not rely on @digiticalcredentials*/,\n }) // todo: Probably should be moved to the module to have access to the loaders\n }\n return this.ldCredentialModule.verifyCredential(credential as VerifiableCredentialSP, context, args.fetchRemoteContexts, args.purpose, checkStatus)\n }\n\n /** {@inheritdoc ICredentialHandlerLDLocal.verifyPresentation} */\n async verifyPresentation(args: IVerifyPresentationLDArgs, context: IVcdmVerifierAgentContext): Promise<IVerifyResult> {\n const presentation = args.presentation\n let checkStatus = args.checkStatus\n if (typeof checkStatus !== 'function' && args.statusList && !args.statusList.disableCheckStatusList2021) {\n checkStatus = vcLibCheckStatusFunction({ ...args.statusList })\n }\n return this.ldCredentialModule.verifyPresentation(\n presentation,\n args.challenge,\n args.domain,\n context,\n args.fetchRemoteContexts,\n args.presentationPurpose,\n checkStatus,\n )\n }\n\n private async findSigningKeyWithId(\n context: IAgentContext<IResolver & IDIDManager>,\n identifier: IIdentifier,\n opts?: {\n keyRef?: string\n didDocument?: DIDDocument\n },\n ): Promise<{ signingKey: IKey; verificationMethodId: string }> {\n const keyRef = opts?.keyRef\n debug(`Retrieving signing key for id ${identifier.did} keyref ${keyRef}...`)\n const didDocument =\n opts?.didDocument ??\n (await getAgentResolver(context)\n .resolve(identifier.did)\n .then((result) => result.didDocument ?? undefined))\n const extendedKeys: _ExtendedIKey[] = await mapIdentifierKeysToDocWithJwkSupport(\n { identifier, vmRelationship: 'verificationMethod', didDocument },\n context,\n )\n const supportedTypes = this.ldCredentialModule.ldSuiteLoader.getAllSignatureSuiteTypes()\n let signingKey: _ExtendedIKey | undefined\n if (keyRef) {\n signingKey = extendedKeys.find((k) => k.kid === keyRef)\n }\n if (signingKey && !supportedTypes.includes(signingKey.meta.verificationMethod.type)) {\n debug('WARNING: requested signing key DOES NOT correspond to a supported Signature suite type. Looking for the next best key.')\n signingKey = undefined\n }\n if (!signingKey) {\n if (keyRef) {\n debug('WARNING: no signing key was found that matches the reference provided. Searching for the first available signing key.')\n }\n signingKey = extendedKeys.find((k) => supportedTypes.filter((value) => value.startsWith(k.meta.verificationMethod.type)))\n }\n\n if (!signingKey) throw Error(`key_not_found: No suitable signing key found for ${identifier.did}. ${JSON.stringify(didDocument)}`)\n const verificationMethodId = signingKey.meta.verificationMethod.id\n debug(`Signing key for id ${identifier.did} and verification method id ${verificationMethodId} found.`)\n return { signingKey, verificationMethodId }\n }\n\n /**\n * Returns true if the key is supported by any of the installed LD Signature suites\n * @param k - the key to match\n *\n * @internal\n */\n matchKeyForLDSuite(k: IKey): boolean {\n // prefilter based on key algorithms\n switch (k.type) {\n case 'Ed25519':\n if (!k.meta?.algorithms?.includes('EdDSA')) return false\n break\n case 'Secp256k1':\n if (intersect(k.meta?.algorithms ?? [], ['ES256K-R', 'ES256K']).length == 0) return false\n break\n }\n\n // TODO: this should return a list of supported suites, not just a boolean\n const suites = this.ldCredentialModule.ldSuiteLoader.getAllSignatureSuites()\n return suites\n .map((suite: SphereonLdSignature) => suite.getSupportedKeyType().includes(k.type))\n .some((supportsThisKey: boolean) => supportsThisKey)\n }\n}\n"],"mappings":"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","names":["Ed25519Signature2018","asArray","suiteContext2018","u8a","Ed25519VerificationKey2018","SphereonLdSignature","preSigningPresModification","presentation","sanitizedPresentation","verifier","length","base64ToBytes","bytesToBase64","SphereonEd25519Signature2018","SphereonLdSignature","constructor","suiteContext2018","constants","getSupportedVerificationType","getSupportedProofType","getSupportedKeyType","getContext","getSuiteForSigning","key","issuerDid","verificationMethodId","context","controller","id","signer","sign","args","messageString","bytesToBase64","data","signature","agent","keyManagerSign","keyRef","kid","algorithm","encoding","base64ToBytes","options","publicKeyBase58","toString","fromString","publicKeyHex","type","verificationKey","Ed25519VerificationKey2018","Ed25519Signature2018","preVerificationCredModification","credential","vcJson","JSON","stringify","indexOf","asArray","v1Idx","Array","isArray","v3Idx","push","getSuiteForVerification","preSigningCredModification","preDidResolutionModification","didUrl","didDoc","Ed25519Signature2020","Ed25519VerificationKey2020","base64ToBytes","bytesToBase64","hexToMultibase","suiteContext2020","SphereonEd25519Signature2020","SphereonLdSignature","constructor","suiteContext2020","constants","getSupportedVerificationType","getSupportedProofType","getSupportedKeyType","getContext","getSuiteForSigning","key","issuerDid","verificationMethodId","context","controller","id","signer","sign","args","messageString","bytesToBase64","data","signature","agent","keyManagerSign","keyRef","kid","algorithm","encoding","base64ToBytes","options","publicKeyMultibase","hexToMultibase","publicKeyHex","type","value","verificationKey","Ed25519VerificationKey2020","Ed25519Signature2020","preVerificationCredModification","credential","getSuiteForVerification","preSigningCredModification","preDidResolutionModification","asArray","encodeJoseBlob","ldsEcdsa","concat","concatArrays","fromString","EcdsaSecp256k1RecoveryMethod2020","EcdsaSecp256k1RecoverySignature2020","ldsEcdsa","SphereonEcdsaSecp256k1RecoverySignature2020","SphereonLdSignature","getSupportedVerificationType","getSupportedProofType","getSupportedKeyType","getSuiteForSigning","key","did","verifiableMethodId","context","controller","signer","sign","args","header","alg","b64","crit","headerString","encodeJoseBlob","messageBuffer","concatArrays","fromString","data","signature","agent","keyManagerSign","keyRef","kid","algorithm","encoding","suite","publicKeyHex","type","id","ensureSuiteContext","document","asArray","getContext","getSuiteForVerification","preVerificationCredModification","preSigningCredModification","credential","preDidResolutionModification","didUrl","didDoc","idx","indexOf","Array","isArray","toLowerCase","startsWith","verificationMethod","forEach","x","blockchainAccountId","ethereumAddress","substring","lastIndexOf","sigpkg","vc","contextHasPlugin","Debug","sigpkg","vc","fetch","Debug","getAgentResolver","debug","Debug","LdDocumentLoader","ldContextLoader","ldSuiteLoader","localResolution","uniresolverResolution","resolverResolution","constructor","options","documentLoader","getLoader","context","attemptToFetchContexts","verifiableData","sigpkg","extendContextLoader","url","trim","length","Error","startsWith","issuer","undefined","id","toLowerCase","resolutionResult","getAgentResolver","resolve","didDoc","didDocument","getAllSignatureSuites","forEach","x","preDidResolutionModification","publicKey","verificationMethod","origUrl","indexOf","component","agent","getDIDComponentById","didUrl","JSON","stringify","contexts","filter","getSupportedVerificationType","type","value","index","self","map","getContext","fragment","Array","isArray","contextUrl","documentUrl","document","has","contextDoc","get","response","fetch","redirect","status","json","_id","e","defaultDocumentLoader","sigpkg","ProofPurpose","purposes","ControllerProofPurpose","AssertionProofPurpose","AuthenticationProofPurpose","MethodNames","events","purposes","sigpkg","ProofPurpose","AssertionProofPurpose","AuthenticationProofPurpose","debug","Debug","LdCredentialModule","ldSuiteLoader","ldDocumentLoader","constructor","options","LdDocumentLoader","issueLDVerifiableCredential","args","context","key","issuerDid","verificationMethodId","credential","purpose","kid","suite","getSignatureSuiteForKeyType","type","meta","verificationMethod","documentLoader","getLoader","attemptToFetchContexts","verifiableData","preSigningCredModification","signingSuite","getSuiteForSigning","contextHasPlugin","credentialStatus","statusListCredential","credentialStatusVC","agent","slAddStatusToCredential","credentialStatusOpts","verifiableCredential","jsigs","sign","compactProof","issue","signLDVerifiablePresentation","presentation","holderDid","challenge","domain","preSigningPresModification","signPresentation","verifyCredential","fetchRemoteContexts","checkStatus","verificationSuites","getAllVerificationSuites","getAllSignatureSuites","forEach","preVerificationCredModification","result","verified","emit","events","CREDENTIAL_VERIFIED","JSON","stringify","console","log","CREDENTIAL_VERIFY_FAILED","map","x","getSuiteForVerification","verifyPresentation","presentationPurpose","error","message","verify","presentationResult","PRESENTATION_VERIFIED","PRESENTATION_VERIFY_FAILED","isIterable","LdContextLoader","contexts","constructor","options","Array","from","contextsPaths","mapItem","map","isIterable","Object","entries","key","value","has","url","get","asArray","LdSuiteLoader","constructor","options","ldSignatureSuites","forEach","suite","keyType","getSupportedKeyType","verifierMapping","signatureMap","asArray","getSupportedVerificationType","verificationType","getSignatureSuiteForKeyType","verificationToSuites","suites","Object","values","Array","isArray","length","Error","entries","map","kt","record","getSupportedProofType","join","getAllSignatureSuites","Set","x","flat","getAllSignatureSuiteTypes","keys","contextCredentialV1","require","contextCredentialV2","LdDefaultContexts","Map","contextBBSV1","contextDidV1","contextSecurityV1","contextSecurityV2","contextSecurityV3","contextSuitesEd25519_2018","contextSuitesX25519","contextSuitesEd25519_2020","contextSuitesJws_2020","contextProfile","contextCitizenshipV1","contextVCRevocationList2020","contextVCStatusList2021","contextLdsEcdsaSecpRecovery2020_0","contextLdsEcdsaSecpRecovery2020_2","contextSuitesSecp","contextSuiteEip712","getAgentResolver","mapIdentifierKeysToDocWithJwkSupport","asArray","intersect","preProcessCredentialPayload","preProcessPresentation","vcLibCheckStatusFunction","Debug","debug","Debug","CredentialProviderJsonld","ldCredentialModule","keyStore","constructor","options","LdCredentialModule","ldContextLoader","LdContextLoader","contextsPaths","contextMaps","LdDefaultContexts","ldSuiteLoader","LdSuiteLoader","ldSignatureSuites","suites","SphereonEd25519Signature2020","SphereonEcdsaSecp256k1RecoverySignature2020","documentLoader","matchKeyForType","key","matchKeyForLDSuite","getTypeProofFormat","canIssueCredentialType","args","proofFormat","canVerifyDocumentType","document","proofType","proof","type","suite","getAllSignatureSuites","getSupportedProofType","asArray","getSupportedVerificationType","includes","createVerifiableCredential","context","credential","issuer","preProcessCredentialPayload","identifier","agent","didManagerGet","did","e","Error","managedKey","verificationMethod","getSigningKey","keyRef","signingKey","verificationMethodId","findSigningKeyWithId","issueLDVerifiableCredential","issuerDid","purpose","credentialStatusOpts","error","Promise","reject","k","get","alias","privateKeyHex","keys","find","kid","createVerifiablePresentation","presentation","holder","preProcessPresentation","verifiableCredential","credentials","map","cred","jwt","issuanceDate","validFrom","signLDVerifiablePresentation","challenge","domain","verifyCredential","checkStatus","statusList","disableCheckStatusList2021","vcLibCheckStatusFunction","verifyStatusListCredential","fetchRemoteContexts","verifyPresentation","presentationPurpose","opts","didDocument","getAgentResolver","resolve","then","result","undefined","extendedKeys","mapIdentifierKeysToDocWithJwkSupport","vmRelationship","supportedTypes","getAllSignatureSuiteTypes","meta","filter","value","startsWith","JSON","stringify","id","algorithms","intersect","length","getSupportedKeyType","some","supportsThisKey"]}
|
|
1
|
+
{"version":3,"sources":["../src/contexts/www.w3.org_2018_credentials_v1.json","../src/contexts/www.w3.org_ns_credentials_v2.json","../src/suites/Ed25519Signature2018.ts","../src/ld-suites.ts","../src/suites/Ed25519Signature2020.ts","../src/suites/EcdsaSecp256k1RecoverySignature2020.ts","../src/ld-credential-module.ts","../src/ld-document-loader.ts","../src/enums.ts","../src/ld-context-loader.ts","../src/ld-suite-loader.ts","../src/contexts/bbs-bls-signature-2020-v1.json","../src/contexts/citizenship-v1.json","../src/contexts/ed25519-signature-2020-v1.json","../src/contexts/eip712.json","../src/contexts/json-web-signature-2020-v1.json","../src/contexts/lds-ecdsa-secp256k1-recovery2020-0.0.json","../src/contexts/veramo.io_contexts_profile_v1.json","../src/contexts/w3id.org_security_suites_ed25519-2018_v1.json","../src/contexts/w3id.org_security_v1.json","../src/contexts/w3id.org_security_v2.json","../src/contexts/w3id.org_security_v3-unstable.json","../src/contexts/w3id.org_security_suites_x25519-2019_v1.json","../src/contexts/w3id.org_security_suites_secp256k1recovery-2020_v2.json","../src/contexts/vc-revocation-list-2020-v1.json","../src/contexts/vc-status-list-2021-v1.json","../src/contexts/www.w3.org_ns_did_v1.json","../src/ld-default-contexts.ts","../src/agent/CredentialProviderJsonld.ts"],"sourcesContent":["{\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"VerifiableCredential\": {\n \"@id\": \"https://www.w3.org/2018/credentials#VerifiableCredential\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"cred\": \"https://www.w3.org/2018/credentials#\",\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"credentialSchema\": {\n \"@id\": \"cred:credentialSchema\",\n \"@type\": \"@id\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"cred\": \"https://www.w3.org/2018/credentials#\",\n\n \"JsonSchemaValidator2018\": \"cred:JsonSchemaValidator2018\"\n }\n },\n \"credentialStatus\": { \"@id\": \"cred:credentialStatus\", \"@type\": \"@id\" },\n \"credentialSubject\": { \"@id\": \"cred:credentialSubject\", \"@type\": \"@id\" },\n \"evidence\": { \"@id\": \"cred:evidence\", \"@type\": \"@id\" },\n \"expirationDate\": { \"@id\": \"cred:expirationDate\", \"@type\": \"xsd:dateTime\" },\n \"holder\": { \"@id\": \"cred:holder\", \"@type\": \"@id\" },\n \"issued\": { \"@id\": \"cred:issued\", \"@type\": \"xsd:dateTime\" },\n \"issuer\": { \"@id\": \"cred:issuer\", \"@type\": \"@id\" },\n \"issuanceDate\": { \"@id\": \"cred:issuanceDate\", \"@type\": \"xsd:dateTime\" },\n \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n \"refreshService\": {\n \"@id\": \"cred:refreshService\",\n \"@type\": \"@id\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"cred\": \"https://www.w3.org/2018/credentials#\",\n\n \"ManualRefreshService2018\": \"cred:ManualRefreshService2018\"\n }\n },\n \"termsOfUse\": { \"@id\": \"cred:termsOfUse\", \"@type\": \"@id\" },\n \"validFrom\": { \"@id\": \"cred:validFrom\", \"@type\": \"xsd:dateTime\" },\n \"validUntil\": { \"@id\": \"cred:validUntil\", \"@type\": \"xsd:dateTime\" }\n }\n },\n\n \"VerifiablePresentation\": {\n \"@id\": \"https://www.w3.org/2018/credentials#VerifiablePresentation\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"cred\": \"https://www.w3.org/2018/credentials#\",\n \"sec\": \"https://w3id.org/security#\",\n\n \"holder\": { \"@id\": \"cred:holder\", \"@type\": \"@id\" },\n \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n \"verifiableCredential\": { \"@id\": \"cred:verifiableCredential\", \"@type\": \"@id\", \"@container\": \"@graph\" }\n }\n },\n\n \"EcdsaSecp256k1Signature2019\": {\n \"@id\": \"https://w3id.org/security#EcdsaSecp256k1Signature2019\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"challenge\": \"sec:challenge\",\n \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n \"domain\": \"sec:domain\",\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"jws\": \"sec:jws\",\n \"nonce\": \"sec:nonce\",\n \"proofPurpose\": {\n \"@id\": \"sec:proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n }\n },\n \"proofValue\": \"sec:proofValue\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n }\n },\n\n \"EcdsaSecp256r1Signature2019\": {\n \"@id\": \"https://w3id.org/security#EcdsaSecp256r1Signature2019\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"challenge\": \"sec:challenge\",\n \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n \"domain\": \"sec:domain\",\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"jws\": \"sec:jws\",\n \"nonce\": \"sec:nonce\",\n \"proofPurpose\": {\n \"@id\": \"sec:proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n }\n },\n \"proofValue\": \"sec:proofValue\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n }\n },\n\n \"Ed25519Signature2018\": {\n \"@id\": \"https://w3id.org/security#Ed25519Signature2018\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"challenge\": \"sec:challenge\",\n \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n \"domain\": \"sec:domain\",\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"jws\": \"sec:jws\",\n \"nonce\": \"sec:nonce\",\n \"proofPurpose\": {\n \"@id\": \"sec:proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n }\n },\n \"proofValue\": \"sec:proofValue\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n }\n },\n\n \"RsaSignature2018\": {\n \"@id\": \"https://w3id.org/security#RsaSignature2018\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"challenge\": \"sec:challenge\",\n \"created\": { \"@id\": \"http://purl.org/dc/terms/created\", \"@type\": \"xsd:dateTime\" },\n \"domain\": \"sec:domain\",\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"jws\": \"sec:jws\",\n \"nonce\": \"sec:nonce\",\n \"proofPurpose\": {\n \"@id\": \"sec:proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"sec\": \"https://w3id.org/security#\",\n\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" }\n }\n },\n \"proofValue\": \"sec:proofValue\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" }\n }\n },\n\n \"proof\": { \"@id\": \"https://w3id.org/security#proof\", \"@type\": \"@id\", \"@container\": \"@graph\" }\n }\n}\n","{\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"description\": \"https://schema.org/description\",\n \"digestMultibase\": {\n \"@id\": \"https://w3id.org/security#digestMultibase\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"digestSRI\": {\n \"@id\": \"https://www.w3.org/2018/credentials#digestSRI\",\n \"@type\": \"https://www.w3.org/2018/credentials#sriString\"\n },\n \"mediaType\": {\n \"@id\": \"https://schema.org/encodingFormat\"\n },\n \"name\": \"https://schema.org/name\",\n\n \"VerifiableCredential\": {\n \"@id\": \"https://www.w3.org/2018/credentials#VerifiableCredential\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"confidenceMethod\": {\n \"@id\": \"https://www.w3.org/2018/credentials#confidenceMethod\",\n \"@type\": \"@id\"\n },\n \"credentialSchema\": {\n \"@id\": \"https://www.w3.org/2018/credentials#credentialSchema\",\n \"@type\": \"@id\"\n },\n \"credentialStatus\": {\n \"@id\": \"https://www.w3.org/2018/credentials#credentialStatus\",\n \"@type\": \"@id\"\n },\n \"credentialSubject\": {\n \"@id\": \"https://www.w3.org/2018/credentials#credentialSubject\",\n \"@type\": \"@id\"\n },\n \"description\": \"https://schema.org/description\",\n \"evidence\": {\n \"@id\": \"https://www.w3.org/2018/credentials#evidence\",\n \"@type\": \"@id\"\n },\n \"issuer\": {\n \"@id\": \"https://www.w3.org/2018/credentials#issuer\",\n \"@type\": \"@id\"\n },\n \"name\": \"https://schema.org/name\",\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"refreshService\": {\n \"@id\": \"https://www.w3.org/2018/credentials#refreshService\",\n \"@type\": \"@id\"\n },\n \"relatedResource\": {\n \"@id\": \"https://www.w3.org/2018/credentials#relatedResource\",\n \"@type\": \"@id\"\n },\n \"renderMethod\": {\n \"@id\": \"https://www.w3.org/2018/credentials#renderMethod\",\n \"@type\": \"@id\"\n },\n \"termsOfUse\": {\n \"@id\": \"https://www.w3.org/2018/credentials#termsOfUse\",\n \"@type\": \"@id\"\n },\n \"validFrom\": {\n \"@id\": \"https://www.w3.org/2018/credentials#validFrom\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"validUntil\": {\n \"@id\": \"https://www.w3.org/2018/credentials#validUntil\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n }\n }\n },\n\n \"EnvelopedVerifiableCredential\": \"https://www.w3.org/2018/credentials#EnvelopedVerifiableCredential\",\n\n \"VerifiablePresentation\": {\n \"@id\": \"https://www.w3.org/2018/credentials#VerifiablePresentation\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"holder\": {\n \"@id\": \"https://www.w3.org/2018/credentials#holder\",\n \"@type\": \"@id\"\n },\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"termsOfUse\": {\n \"@id\": \"https://www.w3.org/2018/credentials#termsOfUse\",\n \"@type\": \"@id\"\n },\n \"verifiableCredential\": {\n \"@id\": \"https://www.w3.org/2018/credentials#verifiableCredential\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\",\n \"@context\": null\n }\n }\n },\n\n \"EnvelopedVerifiablePresentation\": \"https://www.w3.org/2018/credentials#EnvelopedVerifiablePresentation\",\n\n \"JsonSchemaCredential\": \"https://www.w3.org/2018/credentials#JsonSchemaCredential\",\n\n \"JsonSchema\": {\n \"@id\": \"https://www.w3.org/2018/credentials#JsonSchema\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"jsonSchema\": {\n \"@id\": \"https://www.w3.org/2018/credentials#jsonSchema\",\n \"@type\": \"@json\"\n }\n }\n },\n\n \"BitstringStatusListCredential\": \"https://www.w3.org/ns/credentials/status#BitstringStatusListCredential\",\n\n \"BitstringStatusList\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#BitstringStatusList\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"encodedList\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#encodedList\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"statusPurpose\": \"https://www.w3.org/ns/credentials/status#statusPurpose\",\n \"ttl\": \"https://www.w3.org/ns/credentials/status#ttl\"\n }\n },\n\n \"BitstringStatusListEntry\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#BitstringStatusListEntry\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"statusListCredential\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#statusListCredential\",\n \"@type\": \"@id\"\n },\n \"statusListIndex\": \"https://www.w3.org/ns/credentials/status#statusListIndex\",\n \"statusPurpose\": \"https://www.w3.org/ns/credentials/status#statusPurpose\",\n \"statusMessage\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#statusMessage\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"message\": \"https://www.w3.org/ns/credentials/status#message\",\n \"status\": \"https://www.w3.org/ns/credentials/status#status\"\n }\n },\n \"statusReference\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#statusReference\",\n \"@type\": \"@id\"\n },\n \"statusSize\": {\n \"@id\": \"https://www.w3.org/ns/credentials/status#statusSize\",\n \"@type\": \"https://www.w3.org/2001/XMLSchema#integer\"\n }\n }\n },\n\n \"DataIntegrityProof\": {\n \"@id\": \"https://w3id.org/security#DataIntegrityProof\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"cryptosuite\": {\n \"@id\": \"https://w3id.org/security#cryptosuite\",\n \"@type\": \"https://w3id.org/security#cryptosuiteString\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"previousProof\": {\n \"@id\": \"https://w3id.org/security#previousProof\",\n \"@type\": \"@id\"\n },\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": {\n \"@id\": \"https://w3id.org/security#proofValue\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n\n \"...\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#...\"\n },\n \"_sd\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#_sd\",\n \"@type\": \"@json\"\n },\n \"_sd_alg\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#_sd_alg\"\n },\n \"aud\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#aud\",\n \"@type\": \"@id\"\n },\n \"cnf\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#cnf\",\n \"@context\": {\n \"@protected\": true,\n\n \"kid\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#kid\",\n \"@type\": \"@id\"\n },\n \"jwk\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#jwk\",\n \"@type\": \"@json\"\n }\n }\n },\n \"exp\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#exp\",\n \"@type\": \"https://www.w3.org/2001/XMLSchema#nonNegativeInteger\"\n },\n \"iat\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#iat\",\n \"@type\": \"https://www.w3.org/2001/XMLSchema#nonNegativeInteger\"\n },\n \"iss\": {\n \"@id\": \"https://www.iana.org/assignments/jose#iss\",\n \"@type\": \"@id\"\n },\n \"jku\": {\n \"@id\": \"https://www.iana.org/assignments/jose#jku\",\n \"@type\": \"@id\"\n },\n \"kid\": {\n \"@id\": \"https://www.iana.org/assignments/jose#kid\",\n \"@type\": \"@id\"\n },\n \"nbf\": {\n \"@id\": \"https://www.iana.org/assignments/jwt#nbf\",\n \"@type\": \"https://www.w3.org/2001/XMLSchema#nonNegativeInteger\"\n },\n \"sub\": {\n \"@id\": \"https://www.iana.org/assignments/jose#sub\",\n \"@type\": \"@id\"\n },\n \"x5u\": {\n \"@id\": \"https://www.iana.org/assignments/jose#x5u\",\n \"@type\": \"@id\"\n }\n }\n}\n","import { Ed25519Signature2018 } from '@digitalbazaar/ed25519-signature-2018'\nimport type { IKey, TKeyType } from '@veramo/core'\nimport { asArray } from '@veramo/utils'\nimport suiteContext2018 from 'ed25519-signature-2018-context'\n// @ts-ignore\nimport * as u8a from 'uint8arrays'\nimport { Ed25519VerificationKey2018 } from '@digitalbazaar/ed25519-verification-key-2018'\n// const Ed25519Signature2018 = await import('@digitalbazaar/ed25519-signature-2018')\nimport { SphereonLdSignature } from '../ld-suites'\nimport type { DIDDocument } from 'did-resolver'\nimport { base64ToBytes, bytesToBase64, VerifiableCredentialSP } from '@sphereon/ssi-sdk.core'\nimport { IVcdmIssuerAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\n\nexport class SphereonEd25519Signature2018 extends SphereonLdSignature {\n constructor() {\n super()\n // Ensure it is loaded\n suiteContext2018?.constants\n }\n\n getSupportedVerificationType(): string {\n return 'Ed25519VerificationKey2018'\n }\n\n getSupportedProofType(): string {\n return 'Ed25519Signature2018'\n }\n getSupportedKeyType(): TKeyType {\n return 'Ed25519'\n }\n\n getContext(): string {\n return 'https://w3id.org/security/suites/ed25519-2018/v1'\n }\n\n getSuiteForSigning(key: IKey, issuerDid: string, verificationMethodId: string, context: IVcdmIssuerAgentContext): any {\n const controller = issuerDid\n\n // DID Key ID\n const id = verificationMethodId\n\n const signer = {\n // returns a JWS detached\n sign: async (args: { data: Uint8Array }): Promise<Uint8Array> => {\n const messageString = bytesToBase64(args.data)\n const signature = await context.agent.keyManagerSign({\n keyRef: key.kid,\n algorithm: 'EdDSA',\n data: messageString,\n encoding: 'base64',\n })\n return base64ToBytes(signature)\n },\n }\n\n const options = {\n id,\n controller,\n publicKeyBase58: u8a.toString(u8a.fromString(key.publicKeyHex, 'base16'), 'base58btc'),\n signer: signer,\n type: this.getSupportedVerificationType(),\n }\n\n // For now we always go through this route given the multibase key has an invalid header\n const verificationKey = new Ed25519VerificationKey2018(options)\n // overwrite the signer since we're not passing the private key and transmute doesn't support that behavior\n verificationKey.signer = () => signer as any\n // verificationKey.type = this.getSupportedVerificationType()*/\n\n return new Ed25519Signature2018({ key: verificationKey, signer: signer })\n }\n\n preVerificationCredModification(credential: VerifiableCredentialSP): void {\n const vcJson = JSON.stringify(credential)\n if (vcJson.indexOf('Ed25519Signature2018 DISABLED') > -1) {\n if (vcJson.indexOf(this.getContext()) === -1) {\n credential['@context'] = [...asArray(credential['@context'] || []), this.getContext()]\n }\n // Gives a JSON-LD redefinement on a protected term. Probably better to not have the Es25519Signature2018 context though!\n const v1Idx = vcJson.indexOf('https://w3id.org/security/v1')\n if (v1Idx > -1 && Array.isArray(credential['@context'])) {\n delete credential['@context'][v1Idx]\n }\n const v3Idx = vcJson.indexOf('https://w3id.org/security/v3-unstable')\n if (v3Idx === -1 && Array.isArray(credential['@context'])) {\n credential['@context'].push('https://w3id.org/security/v3-unstable')\n }\n }\n }\n\n getSuiteForVerification(): any {\n return new Ed25519Signature2018()\n }\n\n // preSigningCredModification(credential: CredentialPayload): void {\n preSigningCredModification(): void {\n // nothing to do here\n }\n\n // preDidResolutionModification(didUrl: string, didDoc: DIDDocument): void {\n preDidResolutionModification(didUrl: string, didDoc: DIDDocument) {\n /*const vcJson = JSON.stringify(didDoc)\n if (vcJson.indexOf('Ed25519Signature2018') > -1) {\n if (vcJson.indexOf(this.getContext()) === -1) {\n didDoc['@context'] = [...asArray(didDoc['@context'] || []), this.getContext()]\n }\n }*/\n }\n}\n","import type { CredentialPayload, IKey, PresentationPayload, TKeyType } from '@veramo/core'\n// @ts-ignore\nimport type { DIDDocument } from 'did-resolver/lib/resolver'\nimport { IVcdmIssuerAgentContext, IVcdmVerifierAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { VerifiableCredentialSP } from '@sphereon/ssi-sdk.core'\n\n// export type RequiredAgentMethods = IResolver & IDIDManager & Pick<ISphereonKeyManager, 'keyManagerGet' | 'keyManagerSign' | 'keyManagerVerify'>\n\nexport abstract class SphereonLdSignature {\n // LinkedDataSignature Suites according to\n // https://github.com/digitalbazaar/jsonld-signatures/blob/main/lib/suites/LinkedDataSignature\n // Add type definition as soon as https://github.com/digitalbazaar/jsonld-signatures\n // supports those.\n\n abstract getSupportedVerificationType(): string | string[]\n\n abstract getSupportedProofType(): string\n\n abstract getSupportedKeyType(): TKeyType\n\n abstract getSuiteForSigning(key: IKey, issuerDid: string, verificationMethodId: string, context: IVcdmIssuerAgentContext): any\n\n abstract getContext(): string\n\n abstract getSuiteForVerification(context: IVcdmVerifierAgentContext): any\n\n abstract preDidResolutionModification(didUrl: string, didDoc: DIDDocument): void\n\n abstract preSigningCredModification(credential: CredentialPayload): void\n\n abstract preVerificationCredModification(credential: VerifiableCredentialSP): void\n\n preSigningPresModification(presentation: PresentationPayload): void {\n // TODO: Remove invalid field 'verifiers' from Presentation. Needs to be adapted for LD verifiableCredentials\n // Only remove empty array (vc.signPresentation will throw then)\n const sanitizedPresentation = presentation as any\n if (sanitizedPresentation?.verifier?.length == 0) {\n delete sanitizedPresentation.verifier\n }\n }\n}\n","import { Ed25519Signature2020 } from '@digitalcredentials/ed25519-signature-2020'\nimport { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020'\nimport { base64ToBytes, bytesToBase64, hexToMultibase, VerifiableCredentialSP } from '@sphereon/ssi-sdk.core'\nimport type { IKey, TKeyType } from '@veramo/core'\nimport suiteContext2020 from 'ed25519-signature-2020-context'\n\nimport { SphereonLdSignature } from '../ld-suites'\nimport { IVcdmIssuerAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\n\nexport class SphereonEd25519Signature2020 extends SphereonLdSignature {\n constructor() {\n super()\n // Ensure it is loaded\n suiteContext2020?.constants\n }\n\n getSupportedVerificationType(): string[] {\n return ['Ed25519VerificationKey2020', 'Ed25519VerificationKey2018']\n }\n\n getSupportedProofType(): string {\n return 'Ed25519Signature2020'\n }\n\n getSupportedKeyType(): TKeyType {\n return 'Ed25519'\n }\n\n getContext(): string {\n return 'https://w3id.org/security/suites/ed25519-2020/v1'\n }\n\n getSuiteForSigning(key: IKey, issuerDid: string, verificationMethodId: string, context: IVcdmIssuerAgentContext): any {\n const controller = issuerDid\n\n // DID Key ID\n const id = verificationMethodId\n\n const signer = {\n // returns a JWS detached\n sign: async (args: { data: Uint8Array }): Promise<Uint8Array> => {\n const messageString = bytesToBase64(args.data)\n const signature = await context.agent.keyManagerSign({\n keyRef: key.kid,\n algorithm: 'EdDSA',\n data: messageString,\n encoding: 'base64',\n })\n return base64ToBytes(signature)\n },\n }\n\n const options = {\n id: id,\n controller: controller,\n publicKeyMultibase: hexToMultibase(key.publicKeyHex, key.type).value,\n signer: () => signer,\n type: this.getSupportedVerificationType(),\n }\n\n // For now we always go through this route given the multibase key has an invalid header\n const verificationKey = new Ed25519VerificationKey2020(options)\n // overwrite the signer since we're not passing the private key and transmute doesn't support that behavior\n verificationKey.signer = () => signer as any\n // verificationKey.type = this.getSupportedVerificationType()\n\n return new Ed25519Signature2020({\n key: verificationKey,\n signer: signer,\n })\n }\n preVerificationCredModification(credential: VerifiableCredentialSP): void {\n /* const vcJson = JSON.stringify(credential)\n if (vcJson.indexOf('Ed25519Signature2020') > -1) {\n if (vcJson.indexOf(this.getContext()) === -1) {\n credential['@context'] = [...asArray(credential['@context'] || []), this.getContext()]\n }\n }*/\n }\n\n getSuiteForVerification(): any {\n return new Ed25519Signature2020()\n }\n\n // preSigningCredModification(_credential: CredentialPayload): void {}\n preSigningCredModification(): void {}\n\n // preDidResolutionModification(_didUrl: string, _didDoc: DIDDocument): void {\n preDidResolutionModification(): void {\n // nothing to do here\n }\n}\n","import type { CredentialPayload, DIDDocument, IKey, TKeyType } from '@veramo/core'\nimport { asArray, encodeJoseBlob } from '@veramo/utils'\nimport ldsEcdsa from '@veramo-community/lds-ecdsa-secp256k1-recovery2020'\n// @ts-ignore\nimport { concat as concatArrays } from 'uint8arrays/concat'\n// @ts-ignore\nimport { fromString } from 'uint8arrays/from-string'\nimport { SphereonLdSignature } from '../ld-suites'\nimport { IVcdmIssuerAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\n\nconst { EcdsaSecp256k1RecoveryMethod2020, EcdsaSecp256k1RecoverySignature2020 } = ldsEcdsa\n\nexport class SphereonEcdsaSecp256k1RecoverySignature2020 extends SphereonLdSignature {\n getSupportedVerificationType(): string {\n return 'EcdsaSecp256k1RecoveryMethod2020'\n }\n\n getSupportedProofType(): string {\n return 'EcdsaSecp256k1RecoverySignature2020'\n }\n\n getSupportedKeyType(): TKeyType {\n return 'Secp256k1'\n }\n\n getSuiteForSigning(key: IKey, did: string, verifiableMethodId: string, context: IVcdmIssuerAgentContext): any {\n const controller = did\n const signer = {\n //returns a JWS detached\n sign: async (args: { data: Uint8Array }): Promise<string> => {\n const header = {\n alg: 'ES256K-R',\n b64: false,\n crit: ['b64'],\n }\n const headerString = encodeJoseBlob(header)\n const messageBuffer = concatArrays([fromString(`${headerString}.`, 'utf-8'), args.data])\n const signature = await context.agent.keyManagerSign({\n keyRef: key.kid,\n algorithm: 'ES256K-R',\n data: messageBuffer,\n encoding: 'base64',\n })\n return `${headerString}..${signature}`\n },\n }\n\n const suite = new EcdsaSecp256k1RecoverySignature2020({\n // signer,\n key: new EcdsaSecp256k1RecoveryMethod2020({\n publicKeyHex: key.publicKeyHex,\n signer: () => signer,\n type: this.getSupportedVerificationType(),\n controller,\n id: verifiableMethodId,\n }),\n })\n\n suite.ensureSuiteContext = ({ document }: { document: any; addSuiteContext: boolean }) => {\n document['@context'] = [...asArray(document['@context'] || []), this.getContext()]\n }\n\n return suite\n }\n\n getSuiteForVerification(): any {\n return new EcdsaSecp256k1RecoverySignature2020()\n }\n\n preVerificationCredModification(): void {}\n\n preSigningCredModification(credential: CredentialPayload): void {\n credential['@context'] = [\n ...asArray(credential['@context'] || []),\n 'https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld',\n ]\n }\n\n preDidResolutionModification(didUrl: string, didDoc: DIDDocument): void {\n const idx =\n didDoc['@context']?.indexOf('https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld') || -1\n if (Array.isArray(didDoc['@context']) && idx !== -1) {\n didDoc['@context'][idx] = this.getContext()\n }\n // did:ethr\n if (didUrl.toLowerCase().startsWith('did:ethr')) {\n // TODO: EcdsaSecp256k1RecoveryMethod2020 does not support blockchainAccountId\n // blockchainAccountId to ethereumAddress\n didDoc.verificationMethod?.forEach((x) => {\n if (x.blockchainAccountId) {\n x.ethereumAddress = x.blockchainAccountId.substring(0, x.blockchainAccountId.lastIndexOf('@'))\n }\n })\n }\n }\n\n getContext(): string {\n return 'https://w3id.org/security/suites/secp256k1recovery-2020/v2'\n }\n}\n","import sigpkg from '@digitalcredentials/jsonld-signatures'\nimport * as vc from '@digitalcredentials/vc'\nimport { contextHasPlugin } from '@sphereon/ssi-sdk.agent-config'\nimport type { VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core'\nimport type { IIssueCredentialStatusOpts, IStatusListPlugin } from '@sphereon/ssi-sdk.vc-status-list'\nimport type { IVerifyResult, W3CVerifiablePresentation } from '@sphereon/ssi-types'\nimport type { CredentialPayload, IKey, PresentationPayload } from '@veramo/core'\nimport Debug from 'debug'\n\nimport { LdContextLoader } from './ld-context-loader'\nimport { LdDocumentLoader } from './ld-document-loader'\nimport { LdSuiteLoader } from './ld-suite-loader'\nimport { IVcdmIssuerAgentContext, IVcdmVerifierAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { events } from './enums'\n\nconst { purposes } = sigpkg\n\n// import jsigs from '@digitalcredentials/jsonld-signatures'\n//Support for Typescript added in version 9.0.0\n// eslint-disable-next-line @typescript-eslint/no-var-requires\n// const jsigs = require('jsonld-signatures')\n\nconst ProofPurpose = purposes.ProofPurpose\nconst AssertionProofPurpose = purposes.AssertionProofPurpose\nconst AuthenticationProofPurpose = purposes.AuthenticationProofPurpose\n\nconst debug = Debug('sphereon:ssi-sdk:ld-credential-module-local')\n\nexport class LdCredentialModule {\n /**\n * TODO: General Implementation Notes\n * - (SOLVED) EcdsaSecp256k1Signature2019 (Signature) and EcdsaSecp256k1VerificationKey2019 (Key)\n * are not useable right now, since they are not able to work with blockChainId and ECRecover.\n * - DID Fragment Resolution.\n * - Key Manager and Verification Methods: Veramo currently implements no link between those.\n */\n\n ldSuiteLoader: LdSuiteLoader\n private ldDocumentLoader: LdDocumentLoader\n\n constructor(options: {\n ldContextLoader: LdContextLoader\n ldSuiteLoader: LdSuiteLoader\n documentLoader?: {\n localResolution?: boolean // Resolve identifiers hosted by the agent\n uniresolverResolution?: boolean // Resolve identifiers using universal resolver\n resolverResolution?: boolean // Use registered drivers\n }\n }) {\n this.ldSuiteLoader = options.ldSuiteLoader\n this.ldDocumentLoader = new LdDocumentLoader(options)\n }\n\n async issueLDVerifiableCredential(\n args: {\n credential: CredentialPayload\n issuerDid: string\n key: IKey\n verificationMethodId: string\n purpose: typeof ProofPurpose\n credentialStatusOpts?: IIssueCredentialStatusOpts\n },\n context: IVcdmIssuerAgentContext,\n ): Promise<VerifiableCredentialSP> {\n const { key, issuerDid, verificationMethodId, credential } = args\n const purpose = args.purpose\n debug(`Issue VC method called for ${key.kid}...`)\n // TODO: try multiple matching suites until one works or list is exhausted\n const suite = this.ldSuiteLoader.getSignatureSuiteForKeyType(key.type, key.meta?.verificationMethod?.type ?? '')[0]\n\n const documentLoader = this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: true,\n verifiableData: credential,\n })\n\n // some suites can modify the incoming credential (e.g. add required contexts)\n suite.preSigningCredModification(credential)\n debug(`Signing suite will be retrieved for ${verificationMethodId}...`)\n const signingSuite = await suite.getSuiteForSigning(key, issuerDid, verificationMethodId, context)\n debug(`Issuer ${issuerDid} will create VC for ${key.kid}...`)\n if (contextHasPlugin<IVcdmIssuerAgentContext & IStatusListPlugin>(context, 'slAddStatusToCredential')) {\n // Handle status list if enabled\n // We do some additional check to determine whether we will call the below method, as the OID4VCI or W3C-VC API could also have called the method already\n if (credential.credentialStatus && !credential.credentialStatus.statusListCredential) {\n const credentialStatusVC = await context.agent.slAddStatusToCredential({ ...args.credentialStatusOpts, credential })\n if (credentialStatusVC.credentialStatus) {\n credential.credentialStatus = credentialStatusVC.credentialStatus\n }\n }\n }\n\n let verifiableCredential\n //Needs to be signed using jsonld-signaures@5.0.1\n if (key.type === 'Bls12381G2') {\n verifiableCredential = await sigpkg.jsigs.sign(credential, {\n suite: signingSuite,\n purpose,\n documentLoader,\n compactProof: true,\n })\n } else {\n verifiableCredential = await vc.issue({\n credential,\n purpose,\n suite: signingSuite,\n documentLoader,\n compactProof: false,\n })\n }\n debug(`Issuer ${issuerDid} created VC for ${key.kid}`)\n return verifiableCredential\n }\n\n async signLDVerifiablePresentation(\n presentation: PresentationPayload,\n holderDid: string,\n key: IKey,\n verificationMethodId: string,\n challenge: string | undefined,\n domain: string | undefined,\n purpose: typeof ProofPurpose = !challenge // domain is not a mandatory var for AuthenticationProofPurpose per se, but challenge is.\n ? new AssertionProofPurpose()\n : new AuthenticationProofPurpose({\n domain,\n challenge,\n }),\n context: IVcdmIssuerAgentContext,\n ): Promise<VerifiablePresentationSP> {\n // TODO: try multiple matching suites until one works or list is exhausted\n const suite = this.ldSuiteLoader.getSignatureSuiteForKeyType(key.type, key.meta?.verificationMethod?.type ?? '')[0]\n const documentLoader = this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: true,\n verifiableData: presentation,\n })\n\n suite.preSigningPresModification(presentation)\n\n if (key.type === 'Bls12381G2') {\n return await sigpkg.jsigs.sign(presentation, {\n suite: await suite.getSuiteForSigning(key, holderDid, verificationMethodId, context),\n purpose,\n documentLoader,\n compactProof: true,\n })\n }\n return await vc.signPresentation({\n presentation,\n suite: await suite.getSuiteForSigning(key, holderDid, verificationMethodId, context),\n challenge,\n domain,\n documentLoader,\n purpose,\n compactProof: false,\n })\n }\n\n async verifyCredential(\n credential: VerifiableCredentialSP,\n context: IVcdmVerifierAgentContext,\n fetchRemoteContexts = false,\n purpose: typeof ProofPurpose = new AssertionProofPurpose(),\n checkStatus?: Function,\n ): Promise<IVerifyResult> {\n const verificationSuites = this.getAllVerificationSuites(context)\n this.ldSuiteLoader.getAllSignatureSuites().forEach((suite) => suite.preVerificationCredModification(credential))\n // let result: IVerifyResult\n const documentLoader = this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: fetchRemoteContexts,\n verifiableData: credential,\n })\n /*\n const isBls = credential.proof.type?.includes('BbsBlsSignature2020')\n const suite = isBls\n ? (this.ldSuiteLoader\n .getAllSignatureSuites()\n .find((s) => s.getSupportedVeramoKeyType() === 'Bls12381G2')\n ?.getSuiteForVerification(context) as BbsBlsSignature2020)\n : verificationSuites\n context.agent\n if (isBls) {\n // fixme: check signature of verify method, adjust result if needed\n result = await jsigs.verify(credential, {\n suite,\n purpose,\n documentLoader,\n compactProof: true,\n })\n } else {*/\n const result = await vc.verifyCredential({\n credential,\n suite: verificationSuites,\n documentLoader,\n purpose,\n compactProof: false,\n checkStatus,\n })\n // }\n if (result.verified) {\n void context.agent.emit(events.CREDENTIAL_VERIFIED, { credential, ...result })\n } else {\n // result can include raw Error\n debug(`Error verifying LD Verifiable Credential: ${JSON.stringify(result, null, 2)}`)\n console.log(`ERROR verifying LD VC:\\n${JSON.stringify(result, null, 2)}`)\n void context.agent.emit(events.CREDENTIAL_VERIFY_FAILED, { credential, ...result })\n }\n return result\n }\n\n private getAllVerificationSuites(context: IVcdmVerifierAgentContext) {\n return this.ldSuiteLoader.getAllSignatureSuites().map((x) => x.getSuiteForVerification(context))\n }\n\n async verifyPresentation(\n presentation: VerifiablePresentationSP | W3CVerifiablePresentation,\n challenge: string | undefined,\n domain: string | undefined,\n context: IVcdmVerifierAgentContext,\n fetchRemoteContexts = false,\n presentationPurpose: typeof ProofPurpose = !challenge // domain is not a mandatory var for AuthenticationProofPurpose per se, but challenge is.\n ? new AssertionProofPurpose()\n : new AuthenticationProofPurpose({ domain, challenge }),\n checkStatus?: Function,\n //AssertionProofPurpose()\n ): Promise<IVerifyResult> {\n if (typeof presentation === 'string') {\n return {\n verified: false,\n error: {\n message: 'Cannot verify a jwt/string presentation with the jsonld verifier',\n },\n }\n }\n /* let result: IVerifyResult\n if (presentation.proof.type?.includes('BbsBlsSignature2020')) {\n //Should never be null or undefined\n const suite = this.ldSuiteLoader\n .getAllSignatureSuites()\n .find((s) => s.getSupportedVeramoKeyType() === 'Bls12381G2')\n ?.getSuiteForVerification(context) as BbsBlsSignature2020\n result = await jsigs.verify(presentation, {\n suite,\n purpose: presentationPurpose,\n documentLoader: this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: fetchRemoteContexts,\n verifiableData: presentation,\n }),\n compactProof: true,\n })\n } else {*/\n const result = await vc.verify({\n presentation,\n suite: this.getAllVerificationSuites(context),\n documentLoader: this.ldDocumentLoader.getLoader(context, {\n attemptToFetchContexts: fetchRemoteContexts,\n verifiableData: presentation as VerifiablePresentationSP,\n }),\n challenge,\n domain,\n presentationPurpose,\n compactProof: false,\n checkStatus,\n })\n // }\n\n if (result.verified && (!result.presentationResult || result.presentationResult.verified)) {\n context.agent.emit(events.PRESENTATION_VERIFIED, { presentation, ...result })\n } else {\n // NOT verified.\n debug(`Error verifying LD Verifiable Presentation: ${JSON.stringify(result, null, 2)}`)\n context.agent.emit(events.PRESENTATION_VERIFY_FAILED, { presentation, ...result })\n }\n return result\n }\n}\n","import sigpkg from '@digitalcredentials/jsonld-signatures'\nimport * as vc from '@digitalcredentials/vc'\nimport type { CredentialPayload, DIDDocument, IAgentContext, PresentationPayload, VerifiableCredential, VerifiablePresentation } from '@veramo/core'\nimport fetch from 'cross-fetch'\nimport Debug from 'debug'\n\nimport { LdContextLoader } from './ld-context-loader'\nimport { LdSuiteLoader } from './ld-suite-loader'\nimport { getAgentResolver } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { IVcdmVerifierAgentContext } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core'\n\nconst debug = Debug('sphereon:ssi-sdk:credential-jsonld')\n\n/**\n * Initializes a list of Veramo-wrapped LD Signature suites and exposes those to the Agent Module\n */\nexport class LdDocumentLoader {\n private readonly ldContextLoader: LdContextLoader\n ldSuiteLoader: LdSuiteLoader\n private readonly localResolution?: boolean\n private readonly uniresolverResolution?: boolean\n private readonly resolverResolution?: boolean\n\n constructor(options: {\n ldContextLoader: LdContextLoader\n ldSuiteLoader: LdSuiteLoader\n documentLoader?: {\n localResolution?: boolean // Resolve identifiers hosted by the agent\n uniresolverResolution?: boolean // Resolve identifiers using universal resolver\n resolverResolution?: boolean // Use registered drivers\n }\n }) {\n this.ldContextLoader = options.ldContextLoader\n this.ldSuiteLoader = options.ldSuiteLoader\n this.localResolution = options?.documentLoader?.localResolution\n this.uniresolverResolution = options?.documentLoader?.uniresolverResolution\n this.resolverResolution = options?.documentLoader?.resolverResolution\n }\n\n getLoader(\n context: IVcdmVerifierAgentContext,\n {\n attemptToFetchContexts = false,\n verifiableData,\n }: {\n attemptToFetchContexts: boolean\n verifiableData:\n | VerifiableCredential\n | VerifiableCredentialSP\n | VerifiablePresentation\n | VerifiablePresentationSP\n | CredentialPayload\n | PresentationPayload\n },\n ) {\n return sigpkg.extendContextLoader(async (url: string) => {\n if (!url || url.trim().length === 0) {\n throw Error('URL needs to be provided to load a context!')\n }\n\n if (url.startsWith('#') && verifiableData.issuer !== undefined) {\n url = (typeof verifiableData.issuer === 'string' ? verifiableData.issuer : verifiableData.issuer.id) + url\n debug(url)\n }\n // did resolution\n if (url.toLowerCase().startsWith('did:')) {\n // const parsedDID = parseDid(url)\n const resolutionResult = await getAgentResolver(context as IAgentContext<any>, {\n localResolution: this.localResolution,\n resolverResolution: this.resolverResolution,\n uniresolverResolution: this.uniresolverResolution,\n }).resolve(url)\n // context.agent.resolveDid({didUrl: url})\n let didDoc: DIDDocument | null = resolutionResult.didDocument\n if (!didDoc) {\n throw new Error(`Could not fetch DID document with url: ${url}. Did you enable the the driver?`)\n }\n // currently Veramo LD suites can modify the resolution response for DIDs from\n // the document Loader. This allows to fix incompatibilities between DID Documents\n // and LD suites to be fixed specifically within the Veramo LD Suites definition\n this.ldSuiteLoader.getAllSignatureSuites().forEach((x) => x.preDidResolutionModification(url, didDoc as DIDDocument))\n\n // Move legacy publicKey to verificationMethod, so any dependency that does not support it, keeps functioning\n if (didDoc.publicKey) {\n if (!didDoc.verificationMethod) {\n didDoc.verificationMethod = []\n }\n didDoc.verificationMethod = [...didDoc.verificationMethod, ...didDoc.publicKey]\n if (didDoc.verificationMethod.length === 0) {\n throw new Error(`No verification method available for ${url}`)\n }\n delete didDoc.publicKey\n }\n\n const origUrl = url\n if (url.indexOf('#') > 0 && didDoc && typeof didDoc === 'object' && '@context' in didDoc /*&& url.startsWith('did:oyd:')*/) {\n // Apparently we got a whole DID document, but we are looking for a verification method\n // We use origUrl here, as that is how it was used in the VM\n const component = await context.agent.getDIDComponentById({ didDocument: didDoc, didUrl: origUrl })\n debug('OYD DID component:')\n debug(JSON.stringify(component))\n if (component && typeof component !== 'string' && component.id) {\n // We have to provide a context\n const contexts = this.ldSuiteLoader\n .getAllSignatureSuites()\n .filter((x) => x.getSupportedVerificationType() === component.type)\n .filter((value, index, self) => self.indexOf(value) === index)\n .map((value) => value.getContext())\n const fragment = {\n ...component,\n ...(Array.isArray(contexts) && contexts.length > 0 ? { '@context': contexts } : { '@context': didDoc['@context'] }),\n }\n\n return {\n contextUrl: null,\n documentUrl: url,\n document: fragment,\n }\n }\n }\n\n return {\n contextUrl: null,\n documentUrl: url,\n document: didDoc,\n }\n }\n\n if (this.ldContextLoader.has(url)) {\n const contextDoc = await this.ldContextLoader.get(url)\n return {\n contextUrl: null,\n documentUrl: url,\n document: contextDoc,\n }\n } else {\n if (attemptToFetchContexts) {\n debug('WARNING: attempting to fetch the doc directly for ', url)\n try {\n const response = await fetch(url, { redirect: 'follow' })\n if (response.status === 200) {\n const document = await response.json()\n // fixme: The VC API returns an _id object for RL Credentials, which is not allowed, so delete it here for now\n if (url.startsWith('https://vc-api.sphereon.io/services/credentials/')) {\n delete document._id\n }\n return {\n contextUrl: null,\n documentUrl: url,\n document,\n }\n }\n } catch (e) {\n debug('WARNING: unable to fetch the doc or interpret it as JSON', e)\n }\n }\n }\n\n debug(`WARNING: Possible unknown context/identifier for ${url} \\n falling back to default documentLoader`)\n\n return vc.defaultDocumentLoader(url)\n })\n }\n}\n","import sigpkg from '@digitalcredentials/jsonld-signatures'\n\nexport const ProofPurpose = sigpkg.purposes.ProofPurpose\nexport const ControllerProofPurpose = sigpkg.purposes.ControllerProofPurpose\nexport const AssertionProofPurpose = sigpkg.purposes.AssertionProofPurpose\nexport const AuthenticationProofPurpose = sigpkg.purposes.AuthenticationProofPurpose\n\n/**\n * Plugin method map interface\n * @public\n */\nexport enum MethodNames {\n createVerifiableCredential = 'createVerifiableCredential',\n createVerifiablePresentation = 'createVerifiablePresentation',\n verifyCredential = 'verifyCredential',\n verifyPresentation = 'verifyPresentation',\n}\n\nexport type IBindingOverrides = Map<string, MethodNames>\n\nexport enum events {\n CREDENTIAL_ISSUED = 'credentialIssued',\n CREDENTIAL_VERIFIED = 'credentialVerified',\n PRESENTATION_VERIFIED = 'presentationVerified',\n PRESENTATION_VERIFY_FAILED = 'presentationVerificationFailed',\n CREDENTIAL_VERIFY_FAILED = 'credentialVerificationFailed',\n}\n","/**\n * The LdContextLoader is initialized with a List of Map<string, ContextDoc | Promise<ContextDoc>>\n * that it unifies into a single Map to provide to the documentLoader within\n * the w3c credential module.\n */\nimport { ContextDoc } from '@sphereon/ssi-sdk.credential-vcdm'\nimport { isIterable, type OrPromise, type RecordLike } from '@veramo/utils'\n\nexport class LdContextLoader {\n private readonly contexts: Record<string, OrPromise<ContextDoc>>\n\n constructor(options: { contextsPaths: RecordLike<OrPromise<ContextDoc>>[] }) {\n this.contexts = {}\n Array.from(options.contextsPaths, (mapItem) => {\n const map = isIterable(mapItem) ? mapItem : Object.entries(mapItem)\n // generate-plugin-schema is failing unless we use the cast to `any[]`\n for (const [key, value] of map as any[]) {\n this.contexts[key] = value\n }\n })\n }\n\n has(url: string): boolean {\n return this.contexts[url] !== null && typeof this.contexts[url] !== 'undefined'\n }\n\n async get(url: string): Promise<ContextDoc> {\n return this.contexts[url]\n }\n}\n","import type { TKeyType } from '@veramo/core'\n\nimport { SphereonLdSignature } from './ld-suites'\nimport { asArray } from '@sphereon/ssi-sdk.core'\n\n/**\n * Initializes a list of Veramo-wrapped LD Signature suites and exposes those to the Agent Module\n */\n// const debug = Debug('sphereon:ssi-sdk-credential-jsonld')\nexport class LdSuiteLoader {\n constructor(options: { ldSignatureSuites: SphereonLdSignature[] }) {\n options.ldSignatureSuites.forEach((suite) => {\n const keyType = suite.getSupportedKeyType()\n // this.signatureMap[keyType] = suite\n let verifierMapping = this.signatureMap[keyType] ?? {}\n asArray<string>(suite.getSupportedVerificationType()).forEach((verificationType: string) => {\n verifierMapping[verificationType] = [...(verifierMapping[verificationType] ?? []), suite]\n })\n return (this.signatureMap[keyType] = { ...this.signatureMap[keyType], ...verifierMapping })\n /*if (verificationType !== keyType) {\n if (this.signatureMap[verificationType]) {\n throw Error(`Cannot register 2 suites for the same type ${verificationType}`)\n }\n this.signatureMap[verificationType] = suite\n }*/\n })\n }\n\n private signatureMap: Record<string, Record<string, SphereonLdSignature[]>> = {}\n\n getSignatureSuiteForKeyType(keyType: TKeyType, verificationType?: string): SphereonLdSignature[] {\n // Always use verification type if supplied. This is the type denoted by the DID verification method type.\n // The only exception is JsonWebKey. We do not have a signature suite anymore for that (discontinued), so we take the first verification suite in that case. Just like no verification method was supplied\n const verificationToSuites = this.signatureMap[keyType]\n const suites =\n verificationType && verificationType !== '' && verificationType !== 'JsonWebKey2020'\n ? verificationToSuites[verificationType]\n : Object.values(verificationToSuites ?? {})?.[0]\n // const suite = this.signatureMap[keyType]?.[verificationType]\n if (Array.isArray(suites) && suites.length > 0) {\n return suites\n }\n throw new Error(\n `No Sphereon or Veramo LD Signature Suite for ${keyType} and verification type ${verificationType ?? '<none>'}. Available suites:\\n ${Object.entries(\n this.signatureMap,\n )\n .map(\n ([kt, record]) =>\n `\\nKeyType:${kt}\\n => ${Object.entries(record)\n .map(\n ([verificationType, suites]) =>\n `\\n verification-type: ${verificationType}\\n => proof-types: ${suites.map((suite) => suite.getSupportedProofType()).join(', ')}`,\n )\n .join(', ')}`,\n )\n .join(', ')}`,\n )\n }\n\n getAllSignatureSuites(): SphereonLdSignature[] {\n return [\n ...new Set(\n Object.values(this.signatureMap)\n .map((x) => Object.values(x))\n .flat(2),\n ),\n ]\n }\n\n getAllSignatureSuiteTypes(): string[] {\n return [\n ...new Set(\n Object.values(this.signatureMap)\n .map((x) => Object.keys(x))\n .flat(),\n ),\n ]\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"BbsBlsSignature2020\": {\n \"@id\": \"https://w3id.org/security#BbsBlsSignature2020\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"BbsBlsSignatureProof2020\": {\n \"@id\": \"https://w3id.org/security#BbsBlsSignatureProof2020\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"sec\": \"https://w3id.org/security#\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"Bls12381G1Key2020\": {\n \"@id\": \"https://w3id.org/security#Bls12381G1Key2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"revoked\": {\n \"@id\": \"https://w3id.org/security#revoked\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"publicKeyBase58\": {\n \"@id\": \"https://w3id.org/security#publicKeyBase58\"\n }\n }\n },\n \"Bls12381G2Key2020\": {\n \"@id\": \"https://w3id.org/security#Bls12381G2Key2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"revoked\": {\n \"@id\": \"https://w3id.org/security#revoked\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"publicKeyBase58\": {\n \"@id\": \"https://w3id.org/security#publicKeyBase58\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"name\": \"http://schema.org/name\",\n \"description\": \"http://schema.org/description\",\n \"identifier\": \"http://schema.org/identifier\",\n \"image\": { \"@id\": \"http://schema.org/image\", \"@type\": \"@id\" },\n\n \"PermanentResidentCard\": {\n \"@id\": \"https://w3id.org/citizenship#PermanentResidentCard\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"description\": \"http://schema.org/description\",\n \"name\": \"http://schema.org/name\",\n \"identifier\": \"http://schema.org/identifier\",\n \"image\": { \"@id\": \"http://schema.org/image\", \"@type\": \"@id\" }\n }\n },\n\n \"PermanentResident\": {\n \"@id\": \"https://w3id.org/citizenship#PermanentResident\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"ctzn\": \"https://w3id.org/citizenship#\",\n \"schema\": \"http://schema.org/\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"birthCountry\": \"ctzn:birthCountry\",\n \"birthDate\": { \"@id\": \"schema:birthDate\", \"@type\": \"xsd:dateTime\" },\n \"commuterClassification\": \"ctzn:commuterClassification\",\n \"familyName\": \"schema:familyName\",\n \"gender\": \"schema:gender\",\n \"givenName\": \"schema:givenName\",\n \"lprCategory\": \"ctzn:lprCategory\",\n \"lprNumber\": \"ctzn:lprNumber\",\n \"residentSince\": { \"@id\": \"ctzn:residentSince\", \"@type\": \"xsd:dateTime\" }\n }\n },\n\n \"Person\": \"http://schema.org/Person\"\n }\n}\n","{\n \"@context\": {\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"Ed25519VerificationKey2020\": {\n \"@id\": \"https://w3id.org/security#Ed25519VerificationKey2020\"\n },\n \"Ed25519Signature2020\": {\n \"@id\": \"https://w3id.org/security#Ed25519Signature2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": {\n \"@id\": \"https://w3id.org/security#proofValue\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"Eip712SchemaValidator2021\": \"https://w3id.org/security#Eip712SchemaValidator2021\",\n \"EthereumEip712Signature2021\": {\n \"@id\": \"https://w3id.org/security#EthereumEip712Signature2021\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"eip712Domain\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#eip712-domain\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"messageSchema\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#message-schema\",\n \"@type\": \"@json\"\n },\n \"primaryType\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#primary-type\",\n \"domain\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#domain\",\n \"@type\": \"@json\"\n }\n }\n },\n \"eip712\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#eip712-domain\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"types\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#message-schema\",\n \"@type\": \"@json\"\n },\n \"primaryType\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#primary-type\",\n \"domain\": {\n \"@id\": \"https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/#domain\",\n \"@type\": \"@json\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n },\n \"canonicalizationHash\": \"https://w3id.org/security/suites/eip712sig-2021#canonicalizationHash\"\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"JsonWebKey2020\": {\n \"@id\": \"https://w3id.org/security#JsonWebKey2020\"\n },\n \"JsonWebSignature2020\": {\n \"@id\": \"https://w3id.org/security#JsonWebSignature2020\",\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"esrs2020\": \"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#\",\n \"EcdsaSecp256k1RecoverySignature2020\": \"esrs2020:EcdsaSecp256k1RecoverySignature2020\",\n \"EcdsaSecp256k1RecoveryMethod2020\": \"esrs2020:EcdsaSecp256k1RecoveryMethod2020\",\n \"publicKeyJwk\": {\n \"@id\": \"esrs2020:publicKeyJwk\",\n \"@type\": \"@json\"\n },\n \"privateKeyJwk\": {\n \"@id\": \"esrs2020:privateKeyJwk\",\n \"@type\": \"@json\"\n },\n \"publicKeyHex\": \"esrs2020:publicKeyHex\",\n \"privateKeyHex\": \"esrs2020:privateKeyHex\",\n \"ethereumAddress\": \"esrs2020:ethereumAddress\"\n }\n}\n","{\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"Profile\": \"https://veramo.io/contexts/profile#Profile\",\n \"name\": \"https://schema.org/name\"\n }\n}\n","{\n \"@context\": [\n {\n \"@version\": 1.1\n },\n \"https://w3id.org/security/v1\",\n {\n \"AesKeyWrappingKey2019\": \"sec:AesKeyWrappingKey2019\",\n \"DeleteKeyOperation\": \"sec:DeleteKeyOperation\",\n \"DeriveSecretOperation\": \"sec:DeriveSecretOperation\",\n \"EcdsaSecp256k1Signature2019\": \"sec:EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256r1Signature2019\": \"sec:EcdsaSecp256r1Signature2019\",\n \"EcdsaSecp256k1VerificationKey2019\": \"sec:EcdsaSecp256k1VerificationKey2019\",\n \"EcdsaSecp256r1VerificationKey2019\": \"sec:EcdsaSecp256r1VerificationKey2019\",\n \"Ed25519Signature2018\": \"sec:Ed25519Signature2018\",\n \"Ed25519VerificationKey2018\": \"sec:Ed25519VerificationKey2018\",\n \"EquihashProof2018\": \"sec:EquihashProof2018\",\n \"ExportKeyOperation\": \"sec:ExportKeyOperation\",\n \"GenerateKeyOperation\": \"sec:GenerateKeyOperation\",\n \"KmsOperation\": \"sec:KmsOperation\",\n \"RevokeKeyOperation\": \"sec:RevokeKeyOperation\",\n \"RsaSignature2018\": \"sec:RsaSignature2018\",\n \"RsaVerificationKey2018\": \"sec:RsaVerificationKey2018\",\n \"Sha256HmacKey2019\": \"sec:Sha256HmacKey2019\",\n \"SignOperation\": \"sec:SignOperation\",\n \"UnwrapKeyOperation\": \"sec:UnwrapKeyOperation\",\n \"VerifyOperation\": \"sec:VerifyOperation\",\n \"WrapKeyOperation\": \"sec:WrapKeyOperation\",\n \"X25519KeyAgreementKey2019\": \"sec:X25519KeyAgreementKey2019\",\n\n \"allowedAction\": \"sec:allowedAction\",\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"capability\": { \"@id\": \"sec:capability\", \"@type\": \"@id\" },\n \"capabilityAction\": \"sec:capabilityAction\",\n \"capabilityChain\": { \"@id\": \"sec:capabilityChain\", \"@type\": \"@id\", \"@container\": \"@list\" },\n \"capabilityDelegation\": { \"@id\": \"sec:capabilityDelegationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"capabilityInvocation\": { \"@id\": \"sec:capabilityInvocationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"caveat\": { \"@id\": \"sec:caveat\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"challenge\": \"sec:challenge\",\n \"ciphertext\": \"sec:ciphertext\",\n \"controller\": { \"@id\": \"sec:controller\", \"@type\": \"@id\" },\n \"delegator\": { \"@id\": \"sec:delegator\", \"@type\": \"@id\" },\n \"equihashParameterK\": { \"@id\": \"sec:equihashParameterK\", \"@type\": \"xsd:integer\" },\n \"equihashParameterN\": { \"@id\": \"sec:equihashParameterN\", \"@type\": \"xsd:integer\" },\n \"invocationTarget\": { \"@id\": \"sec:invocationTarget\", \"@type\": \"@id\" },\n \"invoker\": { \"@id\": \"sec:invoker\", \"@type\": \"@id\" },\n \"jws\": \"sec:jws\",\n \"keyAgreement\": { \"@id\": \"sec:keyAgreementMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"kmsModule\": { \"@id\": \"sec:kmsModule\" },\n \"parentCapability\": { \"@id\": \"sec:parentCapability\", \"@type\": \"@id\" },\n \"plaintext\": \"sec:plaintext\",\n \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n \"proofPurpose\": { \"@id\": \"sec:proofPurpose\", \"@type\": \"@vocab\" },\n \"proofValue\": \"sec:proofValue\",\n \"referenceId\": \"sec:referenceId\",\n \"unwrappedKey\": \"sec:unwrappedKey\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" },\n \"verifyData\": \"sec:verifyData\",\n \"wrappedKey\": \"sec:wrappedKey\"\n }\n ]\n}\n","{\n \"@context\": {\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"dc\": \"http://purl.org/dc/terms/\",\n \"sec\": \"https://w3id.org/security#\",\n \"xsd\": \"http://www.w3.org/2001/XMLSchema#\",\n\n \"EcdsaKoblitzSignature2016\": \"sec:EcdsaKoblitzSignature2016\",\n \"Ed25519Signature2018\": \"sec:Ed25519Signature2018\",\n \"EncryptedMessage\": \"sec:EncryptedMessage\",\n \"GraphSignature2012\": \"sec:GraphSignature2012\",\n \"LinkedDataSignature2015\": \"sec:LinkedDataSignature2015\",\n \"LinkedDataSignature2016\": \"sec:LinkedDataSignature2016\",\n \"CryptographicKey\": \"sec:Key\",\n\n \"authenticationTag\": \"sec:authenticationTag\",\n \"canonicalizationAlgorithm\": \"sec:canonicalizationAlgorithm\",\n \"cipherAlgorithm\": \"sec:cipherAlgorithm\",\n \"cipherData\": \"sec:cipherData\",\n \"cipherKey\": \"sec:cipherKey\",\n \"created\": { \"@id\": \"dc:created\", \"@type\": \"xsd:dateTime\" },\n \"creator\": { \"@id\": \"dc:creator\", \"@type\": \"@id\" },\n \"digestAlgorithm\": \"sec:digestAlgorithm\",\n \"digestValue\": \"sec:digestValue\",\n \"domain\": \"sec:domain\",\n \"encryptionKey\": \"sec:encryptionKey\",\n \"expiration\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"expires\": { \"@id\": \"sec:expiration\", \"@type\": \"xsd:dateTime\" },\n \"initializationVector\": \"sec:initializationVector\",\n \"iterationCount\": \"sec:iterationCount\",\n \"nonce\": \"sec:nonce\",\n \"normalizationAlgorithm\": \"sec:normalizationAlgorithm\",\n \"owner\": { \"@id\": \"sec:owner\", \"@type\": \"@id\" },\n \"password\": \"sec:password\",\n \"privateKey\": { \"@id\": \"sec:privateKey\", \"@type\": \"@id\" },\n \"privateKeyPem\": \"sec:privateKeyPem\",\n \"publicKey\": { \"@id\": \"sec:publicKey\", \"@type\": \"@id\" },\n \"publicKeyBase58\": \"sec:publicKeyBase58\",\n \"publicKeyPem\": \"sec:publicKeyPem\",\n \"publicKeyWif\": \"sec:publicKeyWif\",\n \"publicKeyService\": { \"@id\": \"sec:publicKeyService\", \"@type\": \"@id\" },\n \"revoked\": { \"@id\": \"sec:revoked\", \"@type\": \"xsd:dateTime\" },\n \"salt\": \"sec:salt\",\n \"signature\": \"sec:signature\",\n \"signatureAlgorithm\": \"sec:signingAlgorithm\",\n \"signatureValue\": \"sec:signatureValue\"\n }\n}\n","{\n \"@context\": [\n {\n \"@version\": 1.1\n },\n \"https://w3id.org/security/v1\",\n {\n \"AesKeyWrappingKey2019\": \"sec:AesKeyWrappingKey2019\",\n \"DeleteKeyOperation\": \"sec:DeleteKeyOperation\",\n \"DeriveSecretOperation\": \"sec:DeriveSecretOperation\",\n \"EcdsaSecp256k1Signature2019\": \"sec:EcdsaSecp256k1Signature2019\",\n \"EcdsaSecp256r1Signature2019\": \"sec:EcdsaSecp256r1Signature2019\",\n \"EcdsaSecp256k1VerificationKey2019\": \"sec:EcdsaSecp256k1VerificationKey2019\",\n \"EcdsaSecp256r1VerificationKey2019\": \"sec:EcdsaSecp256r1VerificationKey2019\",\n \"Ed25519Signature2018\": \"sec:Ed25519Signature2018\",\n \"Ed25519VerificationKey2018\": \"sec:Ed25519VerificationKey2018\",\n \"EquihashProof2018\": \"sec:EquihashProof2018\",\n \"ExportKeyOperation\": \"sec:ExportKeyOperation\",\n \"GenerateKeyOperation\": \"sec:GenerateKeyOperation\",\n \"KmsOperation\": \"sec:KmsOperation\",\n \"RevokeKeyOperation\": \"sec:RevokeKeyOperation\",\n \"RsaSignature2018\": \"sec:RsaSignature2018\",\n \"RsaVerificationKey2018\": \"sec:RsaVerificationKey2018\",\n \"Sha256HmacKey2019\": \"sec:Sha256HmacKey2019\",\n \"SignOperation\": \"sec:SignOperation\",\n \"UnwrapKeyOperation\": \"sec:UnwrapKeyOperation\",\n \"VerifyOperation\": \"sec:VerifyOperation\",\n \"WrapKeyOperation\": \"sec:WrapKeyOperation\",\n \"X25519KeyAgreementKey2019\": \"sec:X25519KeyAgreementKey2019\",\n\n \"allowedAction\": \"sec:allowedAction\",\n \"assertionMethod\": { \"@id\": \"sec:assertionMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"authentication\": { \"@id\": \"sec:authenticationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"capability\": { \"@id\": \"sec:capability\", \"@type\": \"@id\" },\n \"capabilityAction\": \"sec:capabilityAction\",\n \"capabilityChain\": { \"@id\": \"sec:capabilityChain\", \"@type\": \"@id\", \"@container\": \"@list\" },\n \"capabilityDelegation\": { \"@id\": \"sec:capabilityDelegationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"capabilityInvocation\": { \"@id\": \"sec:capabilityInvocationMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"caveat\": { \"@id\": \"sec:caveat\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"challenge\": \"sec:challenge\",\n \"ciphertext\": \"sec:ciphertext\",\n \"controller\": { \"@id\": \"sec:controller\", \"@type\": \"@id\" },\n \"delegator\": { \"@id\": \"sec:delegator\", \"@type\": \"@id\" },\n \"equihashParameterK\": { \"@id\": \"sec:equihashParameterK\", \"@type\": \"xsd:integer\" },\n \"equihashParameterN\": { \"@id\": \"sec:equihashParameterN\", \"@type\": \"xsd:integer\" },\n \"invocationTarget\": { \"@id\": \"sec:invocationTarget\", \"@type\": \"@id\" },\n \"invoker\": { \"@id\": \"sec:invoker\", \"@type\": \"@id\" },\n \"jws\": \"sec:jws\",\n \"keyAgreement\": { \"@id\": \"sec:keyAgreementMethod\", \"@type\": \"@id\", \"@container\": \"@set\" },\n \"kmsModule\": { \"@id\": \"sec:kmsModule\" },\n \"parentCapability\": { \"@id\": \"sec:parentCapability\", \"@type\": \"@id\" },\n \"plaintext\": \"sec:plaintext\",\n \"proof\": { \"@id\": \"sec:proof\", \"@type\": \"@id\", \"@container\": \"@graph\" },\n \"proofPurpose\": { \"@id\": \"sec:proofPurpose\", \"@type\": \"@vocab\" },\n \"proofValue\": \"sec:proofValue\",\n \"referenceId\": \"sec:referenceId\",\n \"unwrappedKey\": \"sec:unwrappedKey\",\n \"verificationMethod\": { \"@id\": \"sec:verificationMethod\", \"@type\": \"@id\" },\n \"verifyData\": \"sec:verifyData\",\n \"wrappedKey\": \"sec:wrappedKey\"\n }\n ]\n}\n","{\n \"@context\": [\n {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"JsonWebKey2020\": {\n \"@id\": \"https://w3id.org/security#JsonWebKey2020\"\n },\n \"JsonWebSignature2020\": {\n \"@id\": \"https://w3id.org/security#JsonWebSignature2020\",\n \"@context\": {\n \"@version\": 1.1,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"Ed25519VerificationKey2020\": {\n \"@id\": \"https://w3id.org/security#Ed25519VerificationKey2020\"\n },\n \"Ed25519Signature2020\": {\n \"@id\": \"https://w3id.org/security#Ed25519Signature2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": {\n \"@id\": \"https://w3id.org/security#proofValue\",\n \"@type\": \"https://w3id.org/security#multibase\"\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"publicKeyJwk\": {\n \"@id\": \"https://w3id.org/security#publicKeyJwk\",\n \"@type\": \"@json\"\n },\n \"ethereumAddress\": {\n \"@id\": \"https://w3id.org/security#ethereumAddress\"\n },\n \"publicKeyHex\": {\n \"@id\": \"https://w3id.org/security#publicKeyHex\"\n },\n \"blockchainAccountId\": {\n \"@id\": \"https://w3id.org/security#blockchainAccountId\"\n },\n \"MerkleProof2019\": {\n \"@id\": \"https://w3id.org/security#MerkleProof2019\"\n },\n \"Bls12381G1Key2020\": {\n \"@id\": \"https://w3id.org/security#Bls12381G1Key2020\"\n },\n \"Bls12381G2Key2020\": {\n \"@id\": \"https://w3id.org/security#Bls12381G2Key2020\"\n },\n \"BbsBlsSignature2020\": {\n \"@id\": \"https://w3id.org/security#BbsBlsSignature2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"BbsBlsSignatureProof2020\": {\n \"@id\": \"https://w3id.org/security#BbsBlsSignatureProof2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n\n \"EcdsaKoblitzSignature2016\": \"https://w3id.org/security#EcdsaKoblitzSignature2016\",\n \"Ed25519Signature2018\": {\n \"@id\": \"https://w3id.org/security#Ed25519Signature2018\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"EncryptedMessage\": \"https://w3id.org/security#EncryptedMessage\",\n \"GraphSignature2012\": \"https://w3id.org/security#GraphSignature2012\",\n \"LinkedDataSignature2015\": \"https://w3id.org/security#LinkedDataSignature2015\",\n \"LinkedDataSignature2016\": \"https://w3id.org/security#LinkedDataSignature2016\",\n \"CryptographicKey\": \"https://w3id.org/security#Key\",\n \"authenticationTag\": \"https://w3id.org/security#authenticationTag\",\n \"canonicalizationAlgorithm\": \"https://w3id.org/security#canonicalizationAlgorithm\",\n \"cipherAlgorithm\": \"https://w3id.org/security#cipherAlgorithm\",\n \"cipherData\": \"https://w3id.org/security#cipherData\",\n \"cipherKey\": \"https://w3id.org/security#cipherKey\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"creator\": {\n \"@id\": \"http://purl.org/dc/terms/creator\",\n \"@type\": \"@id\"\n },\n \"digestAlgorithm\": \"https://w3id.org/security#digestAlgorithm\",\n \"digestValue\": \"https://w3id.org/security#digestValue\",\n \"domain\": \"https://w3id.org/security#domain\",\n \"encryptionKey\": \"https://w3id.org/security#encryptionKey\",\n \"expiration\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"initializationVector\": \"https://w3id.org/security#initializationVector\",\n \"iterationCount\": \"https://w3id.org/security#iterationCount\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"normalizationAlgorithm\": \"https://w3id.org/security#normalizationAlgorithm\",\n \"owner\": \"https://w3id.org/security#owner\",\n \"password\": \"https://w3id.org/security#password\",\n \"privateKey\": \"https://w3id.org/security#privateKey\",\n \"privateKeyPem\": \"https://w3id.org/security#privateKeyPem\",\n \"publicKey\": \"https://w3id.org/security#publicKey\",\n \"publicKeyBase58\": \"https://w3id.org/security#publicKeyBase58\",\n \"publicKeyPem\": \"https://w3id.org/security#publicKeyPem\",\n \"publicKeyWif\": \"https://w3id.org/security#publicKeyWif\",\n \"publicKeyService\": \"https://w3id.org/security#publicKeyService\",\n \"revoked\": {\n \"@id\": \"https://w3id.org/security#revoked\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"salt\": \"https://w3id.org/security#salt\",\n \"signature\": \"https://w3id.org/security#signature\",\n \"signatureAlgorithm\": \"https://w3id.org/security#signingAlgorithm\",\n \"signatureValue\": \"https://w3id.org/security#signatureValue\",\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n\n \"AesKeyWrappingKey2019\": \"https://w3id.org/security#AesKeyWrappingKey2019\",\n \"DeleteKeyOperation\": \"https://w3id.org/security#DeleteKeyOperation\",\n \"DeriveSecretOperation\": \"https://w3id.org/security#DeriveSecretOperation\",\n \"EcdsaSecp256k1Signature2019\": {\n \"@id\": \"https://w3id.org/security#EcdsaSecp256k1Signature2019\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"EcdsaSecp256r1Signature2019\": {\n \"@id\": \"https://w3id.org/security#EcdsaSecp256r1Signature2019\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"EcdsaSecp256k1VerificationKey2019\": \"https://w3id.org/security#EcdsaSecp256k1VerificationKey2019\",\n \"EcdsaSecp256r1VerificationKey2019\": \"https://w3id.org/security#EcdsaSecp256r1VerificationKey2019\",\n \"Ed25519VerificationKey2018\": \"https://w3id.org/security#Ed25519VerificationKey2018\",\n \"EquihashProof2018\": \"https://w3id.org/security#EquihashProof2018\",\n \"ExportKeyOperation\": \"https://w3id.org/security#ExportKeyOperation\",\n \"GenerateKeyOperation\": \"https://w3id.org/security#GenerateKeyOperation\",\n \"KmsOperation\": \"https://w3id.org/security#KmsOperation\",\n \"RevokeKeyOperation\": \"https://w3id.org/security#RevokeKeyOperation\",\n \"RsaSignature2018\": {\n \"@id\": \"https://w3id.org/security#RsaSignature2018\",\n \"@context\": {\n \"@protected\": true,\n\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"proofValue\": \"https://w3id.org/security#proofValue\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n },\n \"RsaVerificationKey2018\": \"https://w3id.org/security#RsaVerificationKey2018\",\n \"Sha256HmacKey2019\": \"https://w3id.org/security#Sha256HmacKey2019\",\n \"SignOperation\": \"https://w3id.org/security#SignOperation\",\n \"UnwrapKeyOperation\": \"https://w3id.org/security#UnwrapKeyOperation\",\n \"VerifyOperation\": \"https://w3id.org/security#VerifyOperation\",\n \"WrapKeyOperation\": \"https://w3id.org/security#WrapKeyOperation\",\n \"X25519KeyAgreementKey2019\": \"https://w3id.org/security#X25519KeyAgreementKey2019\",\n\n \"allowedAction\": \"https://w3id.org/security#allowedAction\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capability\": {\n \"@id\": \"https://w3id.org/security#capability\",\n \"@type\": \"@id\"\n },\n \"capabilityAction\": \"https://w3id.org/security#capabilityAction\",\n \"capabilityChain\": {\n \"@id\": \"https://w3id.org/security#capabilityChain\",\n \"@type\": \"@id\",\n \"@container\": \"@list\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"caveat\": {\n \"@id\": \"https://w3id.org/security#caveat\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"ciphertext\": \"https://w3id.org/security#ciphertext\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"delegator\": {\n \"@id\": \"https://w3id.org/security#delegator\",\n \"@type\": \"@id\"\n },\n \"equihashParameterK\": {\n \"@id\": \"https://w3id.org/security#equihashParameterK\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#:integer\"\n },\n \"equihashParameterN\": {\n \"@id\": \"https://w3id.org/security#equihashParameterN\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#:integer\"\n },\n \"invocationTarget\": {\n \"@id\": \"https://w3id.org/security#invocationTarget\",\n \"@type\": \"@id\"\n },\n \"invoker\": {\n \"@id\": \"https://w3id.org/security#invoker\",\n \"@type\": \"@id\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"kmsModule\": {\n \"@id\": \"https://w3id.org/security#kmsModule\"\n },\n \"parentCapability\": {\n \"@id\": \"https://w3id.org/security#parentCapability\",\n \"@type\": \"@id\"\n },\n \"plaintext\": \"https://w3id.org/security#plaintext\",\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@version\": 1.1,\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"referenceId\": \"https://w3id.org/security#referenceId\",\n \"unwrappedKey\": \"https://w3id.org/security#unwrappedKey\",\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n },\n \"verifyData\": \"https://w3id.org/security#verifyData\",\n \"wrappedKey\": \"https://w3id.org/security#wrappedKey\",\n \"x509CertificateChain\": {\n \"@id\": \"https://w3id.org/security#x509CertificateChain\",\n \"@type\": \"https://w3id.org/security#multibase\",\n \"@container\": \"@list\"\n },\n \"x509CertificateFingerprint\": {\n \"@id\": \"https://w3id.org/security#x509CertificateFingerprint\",\n \"@type\": \"https://w3id.org/security#multibase\"\n }\n }\n ]\n}\n","{\n \"@context\": {\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"X25519KeyAgreementKey2019\": {\n \"@id\": \"https://w3id.org/security#X25519KeyAgreementKey2019\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"revoked\": {\n \"@id\": \"https://w3id.org/security#revoked\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"publicKeyBase58\": {\n \"@id\": \"https://w3id.org/security#publicKeyBase58\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"@protected\": true,\n \"proof\": {\n \"@id\": \"https://w3id.org/security#proof\",\n \"@type\": \"@id\",\n \"@container\": \"@graph\"\n },\n \"EcdsaSecp256k1RecoveryMethod2020\": {\n \"@id\": \"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoveryMethod2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"blockchainAccountId\": \"https://w3id.org/security#blockchainAccountId\",\n \"publicKeyJwk\": {\n \"@id\": \"https://w3id.org/security#publicKeyJwk\",\n \"@type\": \"@json\"\n }\n }\n },\n \"EcdsaSecp256k1RecoverySignature2020\": {\n \"@id\": \"https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#EcdsaSecp256k1RecoverySignature2020\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"challenge\": \"https://w3id.org/security#challenge\",\n \"created\": {\n \"@id\": \"http://purl.org/dc/terms/created\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"domain\": \"https://w3id.org/security#domain\",\n \"expires\": {\n \"@id\": \"https://w3id.org/security#expiration\",\n \"@type\": \"http://www.w3.org/2001/XMLSchema#dateTime\"\n },\n \"jws\": \"https://w3id.org/security#jws\",\n \"nonce\": \"https://w3id.org/security#nonce\",\n \"proofPurpose\": {\n \"@id\": \"https://w3id.org/security#proofPurpose\",\n \"@type\": \"@vocab\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@protected\": true,\n\n \"RevocationList2020Credential\": {\n \"@id\": \"https://w3id.org/vc-revocation-list-2020#RevocationList2020Credential\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"description\": \"http://schema.org/description\",\n \"name\": \"http://schema.org/name\"\n }\n },\n\n \"RevocationList2020\": {\n \"@id\": \"https://w3id.org/vc-revocation-list-2020#RevocationList2020\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"encodedList\": \"https://w3id.org/vc-revocation-list-2020#encodedList\"\n }\n },\n\n \"RevocationList2020Status\": {\n \"@id\": \"https://w3id.org/vc-revocation-list-2020#RevocationList2020Status\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"revocationListCredential\": {\n \"@id\": \"https://w3id.org/vc-revocation-list-2020#revocationListCredential\",\n \"@type\": \"@id\"\n },\n \"revocationListIndex\": \"https://w3id.org/vc-revocation-list-2020#revocationListIndex\"\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@protected\": true,\n\n \"StatusList2021Credential\": {\n \"@id\": \"https://w3id.org/vc/status-list#StatusList2021Credential\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"description\": \"http://schema.org/description\",\n \"name\": \"http://schema.org/name\"\n }\n },\n\n \"StatusList2021\": {\n \"@id\": \"https://w3id.org/vc/status-list#StatusList2021\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"statusPurpose\": \"https://w3id.org/vc/status-list#statusPurpose\",\n \"encodedList\": \"https://w3id.org/vc/status-list#encodedList\"\n }\n },\n\n \"StatusList2021Entry\": {\n \"@id\": \"https://w3id.org/vc/status-list#StatusList2021Entry\",\n \"@context\": {\n \"@protected\": true,\n\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"statusPurpose\": \"https://w3id.org/vc/status-list#statusPurpose\",\n \"statusListIndex\": \"https://w3id.org/vc/status-list#statusListIndex\",\n \"statusListCredential\": {\n \"@id\": \"https://w3id.org/vc/status-list#statusListCredential\",\n \"@type\": \"@id\"\n }\n }\n }\n }\n}\n","{\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n\n \"alsoKnownAs\": {\n \"@id\": \"https://www.w3.org/ns/activitystreams#alsoKnownAs\",\n \"@type\": \"@id\"\n },\n \"assertionMethod\": {\n \"@id\": \"https://w3id.org/security#assertionMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"authentication\": {\n \"@id\": \"https://w3id.org/security#authenticationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityDelegation\": {\n \"@id\": \"https://w3id.org/security#capabilityDelegationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"capabilityInvocation\": {\n \"@id\": \"https://w3id.org/security#capabilityInvocationMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"controller\": {\n \"@id\": \"https://w3id.org/security#controller\",\n \"@type\": \"@id\"\n },\n \"keyAgreement\": {\n \"@id\": \"https://w3id.org/security#keyAgreementMethod\",\n \"@type\": \"@id\",\n \"@container\": \"@set\"\n },\n \"service\": {\n \"@id\": \"https://www.w3.org/ns/did#service\",\n \"@type\": \"@id\",\n \"@context\": {\n \"@protected\": true,\n \"id\": \"@id\",\n \"type\": \"@type\",\n \"serviceEndpoint\": {\n \"@id\": \"https://www.w3.org/ns/did#serviceEndpoint\",\n \"@type\": \"@id\"\n }\n }\n },\n \"verificationMethod\": {\n \"@id\": \"https://w3id.org/security#verificationMethod\",\n \"@type\": \"@id\"\n }\n }\n}\n","import contextBBSV1 from './contexts/bbs-bls-signature-2020-v1.json'\nimport contextCitizenshipV1 from './contexts/citizenship-v1.json' // assert { type: 'json' }\nimport contextSuitesEd25519_2020 from './contexts/ed25519-signature-2020-v1.json' //assert { type: 'json' }\nimport contextSuiteEip712 from './contexts/eip712.json' // assert { type: 'json' }\nimport contextSuitesJws_2020 from './contexts/json-web-signature-2020-v1.json' // assert { type: 'json' }\nimport contextLdsEcdsaSecpRecovery2020_0 from './contexts/lds-ecdsa-secp256k1-recovery2020-0.0.json' // assert { type: 'json' }\nimport contextProfile from './contexts/veramo.io_contexts_profile_v1.json' //assert { type: 'json' }\nimport contextSuitesEd25519_2018 from './contexts/w3id.org_security_suites_ed25519-2018_v1.json' //assert { type: 'json' }\nimport contextSecurityV1 from './contexts/w3id.org_security_v1.json' //assert { type: 'json' }\nimport contextSecurityV2 from './contexts/w3id.org_security_v2.json' //assert { type: 'json' }\nimport contextSecurityV3 from './contexts/w3id.org_security_v3-unstable.json' //assert { type: 'json' }\nimport contextSuitesX25519 from './contexts/w3id.org_security_suites_x25519-2019_v1.json' //assert { type: 'json' }\nimport contextLdsEcdsaSecpRecovery2020_2 from './contexts/w3id.org_security_suites_secp256k1recovery-2020_v2.json' //assert { type: 'json' }\nimport contextSuitesSecp from './contexts/w3id.org_security_suites_secp256k1recovery-2020_v2.json' //assert { type: 'json' }\nimport contextVCRevocationList2020 from './contexts/vc-revocation-list-2020-v1.json' // assert { type: 'json' }\nimport contextVCStatusList2021 from './contexts/vc-status-list-2021-v1.json' // assert { type: 'json' }\nimport contextDidV1 from './contexts/www.w3.org_ns_did_v1.json' //assert { type: 'json' }\n\nconst contextCredentialV1 = require('./contexts/www.w3.org_2018_credentials_v1.json') // assert { type: 'json' }\nconst contextCredentialV2 = require('./contexts/www.w3.org_ns_credentials_v2.json') // assert { type: 'json' }\n\n/**\n * Provides a hardcoded map of common context definitions\n */\nexport const LdDefaultContexts = new Map([\n ['https://www.w3.org/2018/credentials/v1', contextCredentialV1],\n ['https://www.w3.org/ns/credentials/v2', contextCredentialV2],\n ['https://w3.org/ns/credentials/v2', contextCredentialV2],\n ['https://w3id.org/security/bbs/v1', contextBBSV1],\n ['https://w3id.org/did/v1', contextDidV1],\n ['https://w3.org/ns/did/v1', contextDidV1],\n ['https://www.w3.org/ns/did/v1', contextDidV1],\n ['https://w3id.org/security/v1', contextSecurityV1],\n ['https://w3id.org/security/v2', contextSecurityV2],\n ['https://w3id.org/security/v3-unstable', contextSecurityV3],\n ['https://w3id.org/security/suites/ed25519-2018/v1', contextSuitesEd25519_2018],\n ['https://w3id.org/security/suites/x25519-2019/v1', contextSuitesX25519],\n ['https://w3id.org/security/suites/ed25519-2020/v1', contextSuitesEd25519_2020],\n ['https://w3id.org/security/suites/jws-2020/v1', contextSuitesJws_2020],\n ['https://veramo.io/contexts/profile/v1', contextProfile],\n ['https://w3id.org/citizenship/v1', contextCitizenshipV1],\n ['https://w3id.org/vc-revocation-list-2020', contextVCRevocationList2020],\n ['https://w3id.org/vc/status-list/v1', contextVCStatusList2021], // Unfortunately also listed in the spec\n ['https://w3id.org/vc/status-list/2021/v1', contextVCStatusList2021],\n ['https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-0.0.jsonld', contextLdsEcdsaSecpRecovery2020_0],\n ['https://identity.foundation/EcdsaSecp256k1RecoverySignature2020/lds-ecdsa-secp256k1-recovery2020-2.0.jsonld', contextLdsEcdsaSecpRecovery2020_2],\n ['https://w3id.org/security/suites/secp256k1recovery-2020/v2', contextSuitesSecp],\n ['https://w3id.org/security/suites/eip712sig-2021', contextSuiteEip712],\n ['https://w3c-ccg.github.io/ethereum-eip712-signature-2021-spec/', contextSuiteEip712],\n])\n","import { getAgentResolver, mapIdentifierKeysToDocWithJwkSupport } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { asArray, intersect, VerifiableCredentialSP, VerifiablePresentationSP } from '@sphereon/ssi-sdk.core'\nimport {\n ContextDoc,\n ICanIssueCredentialTypeArgs,\n ICanVerifyDocumentTypeArgs,\n ICreateVerifiableCredentialLDArgs,\n ICreateVerifiablePresentationLDArgs,\n IVcdmCredentialProvider,\n IVcdmIssuerAgentContext,\n IVcdmVerifierAgentContext,\n IVerifyCredentialVcdmArgs,\n IVerifyPresentationLDArgs,\n preProcessCredentialPayload,\n preProcessPresentation\n} from '@sphereon/ssi-sdk.credential-vcdm'\nimport { vcLibCheckStatusFunction } from '@sphereon/ssi-sdk.vc-status-list'\nimport { IVerifyResult } from '@sphereon/ssi-types'\nimport type {\n DIDDocument,\n IAgentContext,\n IDIDManager,\n IIdentifier,\n IKey,\n IResolver,\n VerifiableCredential\n} from '@veramo/core'\nimport { AbstractPrivateKeyStore } from '@veramo/key-manager'\nimport { type _ExtendedIKey, type OrPromise, type RecordLike } from '@veramo/utils'\nimport Debug from 'debug'\n\nimport { LdContextLoader } from '../ld-context-loader'\nimport { LdCredentialModule } from '../ld-credential-module'\nimport { LdDefaultContexts } from '../ld-default-contexts'\nimport { LdSuiteLoader } from '../ld-suite-loader'\nimport { SphereonLdSignature } from '../ld-suites'\nimport { SphereonEcdsaSecp256k1RecoverySignature2020, SphereonEd25519Signature2020 } from '../suites'\n\nconst debug = Debug('sphereon:ssi-sdk:ld-credential-module-local')\n\n/**\n * {@inheritDoc IVcLocalIssuerJsonLd}\n */\nexport class CredentialProviderJsonld implements IVcdmCredentialProvider {\n private ldCredentialModule: LdCredentialModule\n private keyStore?: AbstractPrivateKeyStore\n\n constructor(options: {\n contextMaps?: RecordLike<OrPromise<ContextDoc>>[]\n suites?: SphereonLdSignature[]\n keyStore?: AbstractPrivateKeyStore\n documentLoader?: {\n localResolution?: boolean // Resolve identifiers hosted by the agent\n uniresolverResolution?: boolean // Resolve identifiers using universal resolver\n resolverResolution?: boolean // Use registered drivers\n }\n }) {\n this.keyStore = options.keyStore\n this.ldCredentialModule = new LdCredentialModule({\n ldContextLoader: new LdContextLoader({ contextsPaths: options.contextMaps ?? [LdDefaultContexts] }),\n ldSuiteLoader: new LdSuiteLoader({\n ldSignatureSuites: options.suites ?? [new SphereonEd25519Signature2020(), new SphereonEcdsaSecp256k1RecoverySignature2020()],\n }),\n documentLoader: options?.documentLoader,\n })\n\n // this.overrideBindings(options.bindingOverrides)\n }\n /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.matchKeyForType} */\n matchKeyForType(key: IKey): boolean {\n return this.matchKeyForLDSuite(key)\n }\n\n /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.getTypeProofFormat} */\n getTypeProofFormat(): string {\n return 'lds'\n }\n\n /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.canIssueCredentialType} */\n canIssueCredentialType(args: ICanIssueCredentialTypeArgs): boolean {\n return args.proofFormat === 'lds'\n }\n\n /** {@inheritdoc @veramo/credential-w3c#AbstractCredentialProvider.canVerifyDocumentType */\n canVerifyDocumentType(args: ICanVerifyDocumentTypeArgs): boolean {\n const { document } = args\n if (typeof document === 'string') {\n return false\n }\n const proofType = (<VerifiableCredential>document)?.proof?.type ?? '_never_'\n for (const suite of this.ldCredentialModule.ldSuiteLoader.getAllSignatureSuites()) {\n if (suite.getSupportedProofType() === proofType) {\n return true\n } else if (asArray(suite.getSupportedVerificationType()).includes(proofType)) {\n return true\n }\n }\n\n return false\n }\n\n /** {@inheritDoc ICredentialIssuerLDLocal.createVerifiableCredential} */\n async createVerifiableCredential(args: ICreateVerifiableCredentialLDArgs, context: IVcdmIssuerAgentContext): Promise<VerifiableCredentialSP> {\n debug('Entry of createVerifiableCredential')\n const { credential, issuer } = preProcessCredentialPayload(args)\n\n let identifier: IIdentifier\n try {\n debug(`Retrieving identifier for issuer ${issuer} from DID manager...`)\n identifier = await context.agent.didManagerGet({ did: issuer })\n debug(`Identifier for issuer ${issuer} retrieved from DID manager`)\n } catch (e) {\n throw new Error(`invalid_argument: args.credential.issuer must be a DID managed by this agent. ${e}`)\n }\n try {\n const { managedKey, verificationMethod } = await this.getSigningKey(identifier, args.keyRef)\n const { signingKey, verificationMethodId } = await this.findSigningKeyWithId(context, identifier, { keyRef: args.keyRef })\n return await this.ldCredentialModule.issueLDVerifiableCredential(\n {\n credential,\n issuerDid: identifier.did,\n key: managedKey ?? signingKey, // todo: signingKey does not have the private key, so would never work\n verificationMethodId: verificationMethodId ?? (verificationMethod as string),\n purpose: args.purpose,\n credentialStatusOpts: args.credentialStatusOpts,\n },\n context,\n )\n } catch (error) {\n debug(error)\n return Promise.reject(error)\n }\n }\n\n async getSigningKey(identifier: IIdentifier, keyRef?: string) {\n let managedKey: IKey | undefined\n let verificationMethod: string | undefined\n if (keyRef) {\n const k = await this.keyStore?.get({ alias: keyRef })\n if (k?.privateKeyHex) {\n managedKey = {\n ...identifier.keys.find((k) => k.kid === keyRef),\n privateKeyHex: k.privateKeyHex as string,\n } as IKey\n verificationMethod = `${identifier.did}#${managedKey.kid ? managedKey.kid : k.alias}`\n }\n }\n return { managedKey, verificationMethod }\n }\n\n /** {@inheritdoc ICredentialIssuerLD.createVerifiablePresentationLD} */\n async createVerifiablePresentation(args: ICreateVerifiablePresentationLDArgs, context: IVcdmIssuerAgentContext): Promise<VerifiablePresentationSP> {\n const { presentation, holder } = preProcessPresentation(args)\n\n if (presentation.verifiableCredential) {\n const credentials = presentation.verifiableCredential.map((cred) => {\n if (typeof cred !== 'string' && cred.proof?.jwt) {\n return cred.proof.jwt\n } else {\n return cred\n }\n })\n presentation.verifiableCredential = credentials\n }\n\n //issuanceDate/validFrom must not be present for presentations because it is not defined in a @context\n delete presentation.issuanceDate\n delete presentation.validFrom\n\n let identifier: IIdentifier\n try {\n identifier = await context.agent.didManagerGet({ did: holder })\n } catch (e) {\n throw new Error(`invalid_argument: args.presentation.holderDID ${holder} must be a DID managed by this agent`)\n }\n try {\n const { managedKey, verificationMethod } = await this.getSigningKey(identifier, args.keyRef)\n const { signingKey, verificationMethodId } = await this.findSigningKeyWithId(context, identifier, { keyRef: args.keyRef })\n\n return await this.ldCredentialModule.signLDVerifiablePresentation(\n presentation,\n identifier.did,\n managedKey || signingKey, // todo: signingKey does not have the private key, so would never work\n verificationMethodId ? verificationMethodId : (verificationMethod as string),\n args.challenge,\n args.domain,\n args.purpose,\n context,\n )\n } catch (error) {\n debug(error)\n return Promise.reject(error)\n }\n }\n\n /** {@inheritdoc ICredentialHandlerLDLocal.verifyCredential} */\n async verifyCredential(args: IVerifyCredentialVcdmArgs, context: IVcdmVerifierAgentContext): Promise<IVerifyResult> {\n const credential = args.credential\n let checkStatus = args.checkStatus\n if (typeof checkStatus !== 'function' && (!args.statusList || args.statusList.disableCheckStatusList2021 !== true)) {\n checkStatus = vcLibCheckStatusFunction({\n ...args.statusList,\n verifyStatusListCredential: false /*todo: enable. Needs calling this method first and not rely on @digiticalcredentials*/,\n }) // todo: Probably should be moved to the module to have access to the loaders\n }\n return this.ldCredentialModule.verifyCredential(credential as VerifiableCredentialSP, context, args.fetchRemoteContexts, args.purpose, checkStatus)\n }\n\n /** {@inheritdoc ICredentialHandlerLDLocal.verifyPresentation} */\n async verifyPresentation(args: IVerifyPresentationLDArgs, context: IVcdmVerifierAgentContext): Promise<IVerifyResult> {\n const presentation = args.presentation\n let checkStatus = args.checkStatus\n if (typeof checkStatus !== 'function' && args.statusList && !args.statusList.disableCheckStatusList2021) {\n checkStatus = vcLibCheckStatusFunction({ ...args.statusList })\n }\n return this.ldCredentialModule.verifyPresentation(\n presentation,\n args.challenge,\n args.domain,\n context,\n args.fetchRemoteContexts,\n args.presentationPurpose,\n checkStatus,\n )\n }\n\n private async findSigningKeyWithId(\n context: IAgentContext<IResolver & IDIDManager>,\n identifier: IIdentifier,\n opts?: {\n keyRef?: string\n didDocument?: DIDDocument\n },\n ): Promise<{ signingKey: IKey; verificationMethodId: string }> {\n const keyRef = opts?.keyRef\n debug(`Retrieving signing key for id ${identifier.did} keyref ${keyRef}...`)\n const didDocument =\n opts?.didDocument ??\n (await getAgentResolver(context)\n .resolve(identifier.did)\n .then((result) => result.didDocument ?? undefined))\n const extendedKeys: _ExtendedIKey[] = await mapIdentifierKeysToDocWithJwkSupport(\n { identifier, vmRelationship: 'verificationMethod', didDocument },\n context,\n )\n const supportedTypes = this.ldCredentialModule.ldSuiteLoader.getAllSignatureSuiteTypes()\n let signingKey: _ExtendedIKey | undefined\n if (keyRef) {\n signingKey = extendedKeys.find((k) => k.kid === keyRef)\n }\n if (signingKey && !supportedTypes.includes(signingKey.meta.verificationMethod.type)) {\n debug('WARNING: requested signing key DOES NOT correspond to a supported Signature suite type. Looking for the next best key.')\n signingKey = undefined\n }\n if (!signingKey) {\n if (keyRef) {\n debug('WARNING: no signing key was found that matches the reference provided. Searching for the first available signing key.')\n }\n signingKey = extendedKeys.find((k) => supportedTypes.filter((value) => value.startsWith(k.meta.verificationMethod.type)))\n }\n\n if (!signingKey) throw Error(`key_not_found: No suitable signing key found for ${identifier.did}. ${JSON.stringify(didDocument)}`)\n const verificationMethodId = signingKey.meta.verificationMethod.id\n debug(`Signing key for id ${identifier.did} and verification method id ${verificationMethodId} found.`)\n return { signingKey, verificationMethodId }\n }\n\n /**\n * Returns true if the key is supported by any of the installed LD Signature suites\n * @param k - the key to match\n *\n * @internal\n */\n matchKeyForLDSuite(k: IKey): boolean {\n // prefilter based on key algorithms\n switch (k.type) {\n case 'Ed25519':\n if (!k.meta?.algorithms?.includes('EdDSA')) return false\n break\n case 'Secp256k1':\n if (intersect(k.meta?.algorithms ?? [], ['ES256K-R', 'ES256K']).length == 0) return false\n break\n }\n\n // TODO: this should return a list of supported suites, not just a boolean\n const suites = this.ldCredentialModule.ldSuiteLoader.getAllSignatureSuites()\n return suites\n .map((suite: SphereonLdSignature) => suite.getSupportedKeyType().includes(k.type))\n .some((supportsThisKey: boolean) => supportsThisKey)\n }\n}\n"],"mappings":"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","names":["Ed25519Signature2018","asArray","suiteContext2018","u8a","Ed25519VerificationKey2018","SphereonLdSignature","preSigningPresModification","presentation","sanitizedPresentation","verifier","length","base64ToBytes","bytesToBase64","SphereonEd25519Signature2018","SphereonLdSignature","suiteContext2018","constants","getSupportedVerificationType","getSupportedProofType","getSupportedKeyType","getContext","getSuiteForSigning","key","issuerDid","verificationMethodId","context","controller","id","signer","sign","args","messageString","bytesToBase64","data","signature","agent","keyManagerSign","keyRef","kid","algorithm","encoding","base64ToBytes","options","publicKeyBase58","toString","fromString","publicKeyHex","type","verificationKey","Ed25519VerificationKey2018","Ed25519Signature2018","preVerificationCredModification","credential","vcJson","JSON","stringify","indexOf","asArray","v1Idx","Array","isArray","v3Idx","push","getSuiteForVerification","preSigningCredModification","preDidResolutionModification","didUrl","didDoc","Ed25519Signature2020","Ed25519VerificationKey2020","base64ToBytes","bytesToBase64","hexToMultibase","suiteContext2020","SphereonEd25519Signature2020","SphereonLdSignature","suiteContext2020","constants","getSupportedVerificationType","getSupportedProofType","getSupportedKeyType","getContext","getSuiteForSigning","key","issuerDid","verificationMethodId","context","controller","id","signer","sign","args","messageString","bytesToBase64","data","signature","agent","keyManagerSign","keyRef","kid","algorithm","encoding","base64ToBytes","options","publicKeyMultibase","hexToMultibase","publicKeyHex","type","value","verificationKey","Ed25519VerificationKey2020","Ed25519Signature2020","preVerificationCredModification","credential","getSuiteForVerification","preSigningCredModification","preDidResolutionModification","asArray","encodeJoseBlob","ldsEcdsa","concat","concatArrays","fromString","EcdsaSecp256k1RecoveryMethod2020","EcdsaSecp256k1RecoverySignature2020","ldsEcdsa","SphereonEcdsaSecp256k1RecoverySignature2020","SphereonLdSignature","getSupportedVerificationType","getSupportedProofType","getSupportedKeyType","getSuiteForSigning","key","did","verifiableMethodId","context","controller","signer","sign","args","header","alg","b64","crit","headerString","encodeJoseBlob","messageBuffer","concatArrays","fromString","data","signature","agent","keyManagerSign","keyRef","kid","algorithm","encoding","suite","publicKeyHex","type","id","ensureSuiteContext","document","asArray","getContext","getSuiteForVerification","preVerificationCredModification","preSigningCredModification","credential","preDidResolutionModification","didUrl","didDoc","idx","indexOf","Array","isArray","toLowerCase","startsWith","verificationMethod","forEach","x","blockchainAccountId","ethereumAddress","substring","lastIndexOf","sigpkg","vc","contextHasPlugin","Debug","sigpkg","vc","fetch","Debug","getAgentResolver","debug","Debug","LdDocumentLoader","ldContextLoader","ldSuiteLoader","localResolution","uniresolverResolution","resolverResolution","options","documentLoader","getLoader","context","attemptToFetchContexts","verifiableData","sigpkg","extendContextLoader","url","trim","length","Error","startsWith","issuer","undefined","id","toLowerCase","resolutionResult","getAgentResolver","resolve","didDoc","didDocument","getAllSignatureSuites","forEach","x","preDidResolutionModification","publicKey","verificationMethod","origUrl","indexOf","component","agent","getDIDComponentById","didUrl","JSON","stringify","contexts","filter","getSupportedVerificationType","type","value","index","self","map","getContext","fragment","Array","isArray","contextUrl","documentUrl","document","has","contextDoc","get","response","fetch","redirect","status","json","_id","e","defaultDocumentLoader","sigpkg","ProofPurpose","purposes","ControllerProofPurpose","AssertionProofPurpose","AuthenticationProofPurpose","MethodNames","events","purposes","sigpkg","ProofPurpose","AssertionProofPurpose","AuthenticationProofPurpose","debug","Debug","LdCredentialModule","ldSuiteLoader","ldDocumentLoader","options","LdDocumentLoader","issueLDVerifiableCredential","args","context","key","issuerDid","verificationMethodId","credential","purpose","kid","suite","getSignatureSuiteForKeyType","type","meta","verificationMethod","documentLoader","getLoader","attemptToFetchContexts","verifiableData","preSigningCredModification","signingSuite","getSuiteForSigning","contextHasPlugin","credentialStatus","statusListCredential","credentialStatusVC","agent","slAddStatusToCredential","credentialStatusOpts","verifiableCredential","jsigs","sign","compactProof","issue","signLDVerifiablePresentation","presentation","holderDid","challenge","domain","preSigningPresModification","signPresentation","verifyCredential","fetchRemoteContexts","checkStatus","verificationSuites","getAllVerificationSuites","getAllSignatureSuites","forEach","preVerificationCredModification","result","verified","emit","events","CREDENTIAL_VERIFIED","JSON","stringify","console","log","CREDENTIAL_VERIFY_FAILED","map","x","getSuiteForVerification","verifyPresentation","presentationPurpose","error","message","verify","presentationResult","PRESENTATION_VERIFIED","PRESENTATION_VERIFY_FAILED","isIterable","LdContextLoader","contexts","options","Array","from","contextsPaths","mapItem","map","isIterable","Object","entries","key","value","has","url","get","asArray","LdSuiteLoader","options","ldSignatureSuites","forEach","suite","keyType","getSupportedKeyType","verifierMapping","signatureMap","asArray","getSupportedVerificationType","verificationType","getSignatureSuiteForKeyType","verificationToSuites","suites","Object","values","Array","isArray","length","Error","entries","map","kt","record","getSupportedProofType","join","getAllSignatureSuites","Set","x","flat","getAllSignatureSuiteTypes","keys","contextCredentialV1","require","contextCredentialV2","LdDefaultContexts","Map","contextBBSV1","contextDidV1","contextSecurityV1","contextSecurityV2","contextSecurityV3","contextSuitesEd25519_2018","contextSuitesX25519","contextSuitesEd25519_2020","contextSuitesJws_2020","contextProfile","contextCitizenshipV1","contextVCRevocationList2020","contextVCStatusList2021","contextLdsEcdsaSecpRecovery2020_0","contextLdsEcdsaSecpRecovery2020_2","contextSuitesSecp","contextSuiteEip712","getAgentResolver","mapIdentifierKeysToDocWithJwkSupport","asArray","intersect","preProcessCredentialPayload","preProcessPresentation","vcLibCheckStatusFunction","Debug","debug","Debug","CredentialProviderJsonld","ldCredentialModule","keyStore","options","LdCredentialModule","ldContextLoader","LdContextLoader","contextsPaths","contextMaps","LdDefaultContexts","ldSuiteLoader","LdSuiteLoader","ldSignatureSuites","suites","SphereonEd25519Signature2020","SphereonEcdsaSecp256k1RecoverySignature2020","documentLoader","matchKeyForType","key","matchKeyForLDSuite","getTypeProofFormat","canIssueCredentialType","args","proofFormat","canVerifyDocumentType","document","proofType","proof","type","suite","getAllSignatureSuites","getSupportedProofType","asArray","getSupportedVerificationType","includes","createVerifiableCredential","context","credential","issuer","preProcessCredentialPayload","identifier","agent","didManagerGet","did","e","Error","managedKey","verificationMethod","getSigningKey","keyRef","signingKey","verificationMethodId","findSigningKeyWithId","issueLDVerifiableCredential","issuerDid","purpose","credentialStatusOpts","error","Promise","reject","k","get","alias","privateKeyHex","keys","find","kid","createVerifiablePresentation","presentation","holder","preProcessPresentation","verifiableCredential","credentials","map","cred","jwt","issuanceDate","validFrom","signLDVerifiablePresentation","challenge","domain","verifyCredential","checkStatus","statusList","disableCheckStatusList2021","vcLibCheckStatusFunction","verifyStatusListCredential","fetchRemoteContexts","verifyPresentation","presentationPurpose","opts","didDocument","getAgentResolver","resolve","then","result","undefined","extendedKeys","mapIdentifierKeysToDocWithJwkSupport","vmRelationship","supportedTypes","getAllSignatureSuiteTypes","meta","filter","value","startsWith","JSON","stringify","id","algorithms","intersect","length","getSupportedKeyType","some","supportsThisKey"]}
|