Added support for VCDM 2.0
This commit is contained in:
		
							parent
							
								
									c97c455d09
								
							
						
					
					
						commit
						be7e496d47
					
				@ -13,7 +13,7 @@ public class Ed25519Signature2022LdVerifier extends LdVerifier<Ed25519Signature2
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public Ed25519Signature2022LdVerifier(ByteVerifier verifier) {
 | 
					    public Ed25519Signature2022LdVerifier(ByteVerifier verifier) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        super(SignatureSuites.SIGNATURE_SUITE_ED25519SIGNATURE2022, verifier, new URDNA2015Canonicalizer());
 | 
					        super(SignatureSuites.SIGNATURE_SUITE_ED25519SIGNATURE2022, verifier, new URDNA2015Canonicalizer(Eddsa2022LdProof.builder()));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Ed25519Signature2022LdVerifier(byte[] publicKey) {
 | 
					    public Ed25519Signature2022LdVerifier(byte[] publicKey) {
 | 
				
			||||||
 | 
				
			|||||||
@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					package org.oneedtech.inspect.vc.verification;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.danubetech.keyformats.crypto.ByteVerifier;
 | 
				
			||||||
 | 
					import com.danubetech.keyformats.crypto.impl.Ed25519_EdDSA_PublicKeyVerifier;
 | 
				
			||||||
 | 
					import com.danubetech.keyformats.jose.JWSAlgorithm;
 | 
				
			||||||
 | 
					import info.weboftrust.ldsignatures.LdProof;
 | 
				
			||||||
 | 
					import info.weboftrust.ldsignatures.verifier.LdVerifier;
 | 
				
			||||||
 | 
					import io.ipfs.multibase.Multibase;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.security.GeneralSecurityException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class Ed25519Signature2022VCDM20LdVerifier extends LdVerifier<Ed25519Signature2022SignatureSuite> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Ed25519Signature2022VCDM20LdVerifier(ByteVerifier verifier) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        super(SignatureSuites.SIGNATURE_SUITE_ED25519SIGNATURE2022, verifier, new URDNA2015Canonicalizer(Eddsa2022v2LdProof.builder()));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Ed25519Signature2022VCDM20LdVerifier(byte[] publicKey) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this(new Ed25519_EdDSA_PublicKeyVerifier(publicKey));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Ed25519Signature2022VCDM20LdVerifier() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        this((ByteVerifier) null);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static boolean verify(byte[] signingInput, LdProof ldProof, ByteVerifier verifier) throws GeneralSecurityException {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // verify
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String proofValue = ldProof.getProofValue();
 | 
				
			||||||
 | 
					        if (proofValue == null) throw new GeneralSecurityException("No 'proofValue' in proof.");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        boolean verify;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        byte[] bytes = Multibase.decode(proofValue);
 | 
				
			||||||
 | 
					        verify = verifier.verify(signingInput, bytes, JWSAlgorithm.EdDSA);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return verify;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean verify(byte[] signingInput, LdProof ldProof) throws GeneralSecurityException {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return verify(signingInput, ldProof, this.getVerifier());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					package org.oneedtech.inspect.vc.verification;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.net.URI;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.apicatalog.jsonld.loader.DocumentLoader;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import foundation.identity.jsonld.JsonLDObject;
 | 
				
			||||||
 | 
					import foundation.identity.jsonld.JsonLDUtils;
 | 
				
			||||||
 | 
					import info.weboftrust.ldsignatures.LdProof;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class Eddsa2022v2LdProof extends LdProof {
 | 
				
			||||||
 | 
						public static final URI[] DEFAULT_JSONLD_CONTEXTS = { LDSecurityContexts.JSONLD_CONTEXT_W3ID_VC_V2 };
 | 
				
			||||||
 | 
						public static final DocumentLoader DEFAULT_DOCUMENT_LOADER = LDSecurityContexts.DOCUMENT_LOADER;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public static Builder<? extends Builder<?>> builder() {
 | 
				
			||||||
 | 
							return new Builder(new Eddsa2022v2LdProof());
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * Factory methods
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public static class Builder<B extends Builder<B>> extends LdProof.Builder<B> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							private boolean addCryptosuite = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							public Builder(LdProof jsonLdObject) {
 | 
				
			||||||
 | 
								super(jsonLdObject);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@Override
 | 
				
			||||||
 | 
							public B base(JsonLDObject base) {
 | 
				
			||||||
 | 
								addCryptosuite = false;
 | 
				
			||||||
 | 
								return super.base(base);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							@Override
 | 
				
			||||||
 | 
							public LdProof build() {
 | 
				
			||||||
 | 
								super.build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if (addCryptosuite) {
 | 
				
			||||||
 | 
									JsonLDUtils.jsonLdAdd(this.jsonLdObject, "cryptosuite", "eddsa-rdfc-2022");
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								return (LdProof) this.jsonLdObject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -15,6 +15,7 @@ import foundation.identity.jsonld.ConfigurableDocumentLoader;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class LDSecurityContexts {
 | 
					public class LDSecurityContexts {
 | 
				
			||||||
    public static final URI JSONLD_CONTEXT_W3ID_SUITES_ED25519_2022_V1 = URI.create("https://w3id.org/security/data-integrity/v1");
 | 
					    public static final URI JSONLD_CONTEXT_W3ID_SUITES_ED25519_2022_V1 = URI.create("https://w3id.org/security/data-integrity/v1");
 | 
				
			||||||
 | 
					    public static final URI JSONLD_CONTEXT_W3ID_VC_V2 = URI.create("https://www.w3.org/ns/credentials/v2");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static final Map<URI, JsonDocument> CONTEXTS;
 | 
					    public static final Map<URI, JsonDocument> CONTEXTS;
 | 
				
			||||||
    public static final DocumentLoader DOCUMENT_LOADER;
 | 
					    public static final DocumentLoader DOCUMENT_LOADER;
 | 
				
			||||||
@ -29,6 +30,8 @@ public class LDSecurityContexts {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            CONTEXTS.put(JSONLD_CONTEXT_W3ID_SUITES_ED25519_2022_V1,
 | 
					            CONTEXTS.put(JSONLD_CONTEXT_W3ID_SUITES_ED25519_2022_V1,
 | 
				
			||||||
                    JsonDocument.of(MediaType.JSON_LD, Resources.getResource("contexts/data-integrity-v1.jsonld").openStream()));
 | 
					                    JsonDocument.of(MediaType.JSON_LD, Resources.getResource("contexts/data-integrity-v1.jsonld").openStream()));
 | 
				
			||||||
 | 
					            CONTEXTS.put(JSONLD_CONTEXT_W3ID_VC_V2,
 | 
				
			||||||
 | 
					                    JsonDocument.of(MediaType.JSON_LD, Resources.getResource("contexts/credentials-v2.jsonld").openStream()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (Map.Entry<URI, JsonDocument> context : CONTEXTS.entrySet()) {
 | 
					            for (Map.Entry<URI, JsonDocument> context : CONTEXTS.entrySet()) {
 | 
				
			||||||
                context.getValue().setDocumentUrl(context.getKey());
 | 
					                context.getValue().setDocumentUrl(context.getKey());
 | 
				
			||||||
 | 
				
			|||||||
@ -1,28 +1,29 @@
 | 
				
			|||||||
package org.oneedtech.inspect.vc.verification;
 | 
					package org.oneedtech.inspect.vc.verification;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.security.GeneralSecurityException;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import foundation.identity.jsonld.JsonLDException;
 | 
					import foundation.identity.jsonld.JsonLDException;
 | 
				
			||||||
import foundation.identity.jsonld.JsonLDObject;
 | 
					import foundation.identity.jsonld.JsonLDObject;
 | 
				
			||||||
import info.weboftrust.ldsignatures.LdProof;
 | 
					import info.weboftrust.ldsignatures.LdProof;
 | 
				
			||||||
import info.weboftrust.ldsignatures.canonicalizer.Canonicalizer;
 | 
					import info.weboftrust.ldsignatures.canonicalizer.Canonicalizer;
 | 
				
			||||||
import info.weboftrust.ldsignatures.util.SHAUtil;
 | 
					import info.weboftrust.ldsignatures.util.SHAUtil;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					 | 
				
			||||||
import java.security.GeneralSecurityException;
 | 
					 | 
				
			||||||
import java.util.List;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public class URDNA2015Canonicalizer extends Canonicalizer {
 | 
					public class URDNA2015Canonicalizer extends Canonicalizer {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public URDNA2015Canonicalizer() {
 | 
					    private LdProof.Builder<?> proofBuilder;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public URDNA2015Canonicalizer(LdProof.Builder<?> proofBuilder) {
 | 
				
			||||||
        super(List.of("urdna2015"));
 | 
					        super(List.of("urdna2015"));
 | 
				
			||||||
 | 
					        this.proofBuilder = proofBuilder;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public byte[] canonicalize(LdProof ldProof, JsonLDObject jsonLdObject) throws IOException, GeneralSecurityException, JsonLDException {
 | 
					    public byte[] canonicalize(LdProof ldProof, JsonLDObject jsonLdObject) throws IOException, GeneralSecurityException, JsonLDException {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // construct the LD proof without proof values
 | 
					        // construct the LD proof without proof values
 | 
				
			||||||
 | 
					        LdProof ldProofWithoutProofValues = proofBuilder
 | 
				
			||||||
        LdProof ldProofWithoutProofValues = Eddsa2022LdProof.builder()
 | 
					 | 
				
			||||||
                .base(ldProof)
 | 
					                .base(ldProof)
 | 
				
			||||||
                .defaultContexts(true)
 | 
					                .defaultContexts(true)
 | 
				
			||||||
                .build();
 | 
					                .build();
 | 
				
			||||||
 | 
				
			|||||||
@ -1,322 +1,290 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    "@context": {
 | 
					  "@context": {
 | 
				
			||||||
      "@protected": true,
 | 
					    "@protected": true,
 | 
				
			||||||
      "@vocab": "https://www.w3.org/ns/credentials/issuer-dependent#",
 | 
					    "@vocab": "https://www.w3.org/ns/credentials/issuer-dependent#",
 | 
				
			||||||
 | 
					    "id": "@id",
 | 
				
			||||||
      "id": "@id",
 | 
					    "type": "@type",
 | 
				
			||||||
      "type": "@type",
 | 
					    "kid": {
 | 
				
			||||||
 | 
					      "@id": "https://www.iana.org/assignments/jose#kid",
 | 
				
			||||||
      "kid": {
 | 
					      "@type": "@id"
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jose#kid",
 | 
					    },
 | 
				
			||||||
        "@type": "@id"
 | 
					    "iss": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.iana.org/assignments/jose#iss",
 | 
				
			||||||
      "iss": {
 | 
					      "@type": "@id"
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jose#iss",
 | 
					    },
 | 
				
			||||||
        "@type": "@id"
 | 
					    "sub": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.iana.org/assignments/jose#sub",
 | 
				
			||||||
      "sub": {
 | 
					      "@type": "@id"
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jose#sub",
 | 
					    },
 | 
				
			||||||
        "@type": "@id"
 | 
					    "jku": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.iana.org/assignments/jose#jku",
 | 
				
			||||||
      "jku": {
 | 
					      "@type": "@id"
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jose#jku",
 | 
					    },
 | 
				
			||||||
        "@type": "@id"
 | 
					    "x5u": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.iana.org/assignments/jose#x5u",
 | 
				
			||||||
      "x5u": {
 | 
					      "@type": "@id"
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jose#x5u",
 | 
					    },
 | 
				
			||||||
        "@type": "@id"
 | 
					    "aud": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.iana.org/assignments/jwt#aud",
 | 
				
			||||||
      "aud": {
 | 
					      "@type": "@id"
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jwt#aud",
 | 
					    },
 | 
				
			||||||
        "@type": "@id"
 | 
					    "exp": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.iana.org/assignments/jwt#exp",
 | 
				
			||||||
      "exp": {
 | 
					      "@type": "https://www.w3.org/2001/XMLSchema#nonNegativeInteger"
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jwt#exp",
 | 
					    },
 | 
				
			||||||
        "@type": "https://www.w3.org/2001/XMLSchema#nonNegativeInteger"
 | 
					    "nbf": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.iana.org/assignments/jwt#nbf",
 | 
				
			||||||
      "nbf": {
 | 
					      "@type": "https://www.w3.org/2001/XMLSchema#nonNegativeInteger"
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jwt#nbf",
 | 
					    },
 | 
				
			||||||
        "@type": "https://www.w3.org/2001/XMLSchema#nonNegativeInteger"
 | 
					    "iat": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.iana.org/assignments/jwt#iat",
 | 
				
			||||||
      "iat": {
 | 
					      "@type": "https://www.w3.org/2001/XMLSchema#nonNegativeInteger"
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jwt#iat",
 | 
					    },
 | 
				
			||||||
        "@type": "https://www.w3.org/2001/XMLSchema#nonNegativeInteger"
 | 
					    "cnf": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.iana.org/assignments/jwt#cnf",
 | 
				
			||||||
      "cnf": {
 | 
					      "@context": {
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jwt#cnf",
 | 
					        "@protected": true,
 | 
				
			||||||
        "@context": {
 | 
					        "kid": {
 | 
				
			||||||
          "@protected": true,
 | 
					          "@id": "https://www.iana.org/assignments/jwt#kid",
 | 
				
			||||||
          "kid": {
 | 
					          "@type": "@id"
 | 
				
			||||||
            "@id": "https://www.iana.org/assignments/jwt#kid",
 | 
					        },
 | 
				
			||||||
            "@type": "@id"
 | 
					        "jwk": {
 | 
				
			||||||
          },
 | 
					          "@id": "https://www.iana.org/assignments/jwt#jwk",
 | 
				
			||||||
          "jwk": {
 | 
					          "@type": "@json"
 | 
				
			||||||
            "@id": "https://www.iana.org/assignments/jwt#jwk",
 | 
					        }
 | 
				
			||||||
            "@type": "@json"
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "_sd_alg": {
 | 
				
			||||||
 | 
					      "@id": "https://www.iana.org/assignments/jwt#_sd_alg"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "_sd": {
 | 
				
			||||||
 | 
					      "@id": "https://www.iana.org/assignments/jwt#_sd"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "...": {
 | 
				
			||||||
 | 
					      "@id": "https://www.iana.org/assignments/jwt#..."
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "digestSRI": {
 | 
				
			||||||
 | 
					      "@id": "https://www.w3.org/2018/credentials#digestSRI",
 | 
				
			||||||
 | 
					      "@type": "https://www.w3.org/2018/credentials#sriString"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "digestMultibase": {
 | 
				
			||||||
 | 
					      "@id": "https://w3id.org/security#digestMultibase",
 | 
				
			||||||
 | 
					      "@type": "https://w3id.org/security#multibase"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "mediaType": {
 | 
				
			||||||
 | 
					      "@id": "https://schema.org/encodingFormat"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "description": "https://schema.org/description",
 | 
				
			||||||
 | 
					    "name": "https://schema.org/name",
 | 
				
			||||||
 | 
					    "EnvelopedVerifiableCredential": "https://www.w3.org/2018/credentials#EnvelopedVerifiableCredential",
 | 
				
			||||||
 | 
					    "VerifiableCredential": {
 | 
				
			||||||
 | 
					      "@id": "https://www.w3.org/2018/credentials#VerifiableCredential",
 | 
				
			||||||
 | 
					      "@context": {
 | 
				
			||||||
 | 
					        "@protected": true,
 | 
				
			||||||
 | 
					        "id": "@id",
 | 
				
			||||||
 | 
					        "type": "@type",
 | 
				
			||||||
 | 
					        "credentialSchema": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#credentialSchema",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "credentialStatus": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#credentialStatus",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "credentialSubject": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#credentialSubject",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "description": "https://schema.org/description",
 | 
				
			||||||
 | 
					        "evidence": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#evidence",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "validFrom": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#validFrom",
 | 
				
			||||||
 | 
					          "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "validUntil": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#validUntil",
 | 
				
			||||||
 | 
					          "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "issuer": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#issuer",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "name": "https://schema.org/name",
 | 
				
			||||||
 | 
					        "proof": {
 | 
				
			||||||
 | 
					          "@id": "https://w3id.org/security#proof",
 | 
				
			||||||
 | 
					          "@type": "@id",
 | 
				
			||||||
 | 
					          "@container": "@graph"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "refreshService": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#refreshService",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "termsOfUse": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#termsOfUse",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "confidenceMethod": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#confidenceMethod",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "relatedResource": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#relatedResource",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "VerifiablePresentation": {
 | 
				
			||||||
 | 
					      "@id": "https://www.w3.org/2018/credentials#VerifiablePresentation",
 | 
				
			||||||
 | 
					      "@context": {
 | 
				
			||||||
 | 
					        "@protected": true,
 | 
				
			||||||
 | 
					        "id": "@id",
 | 
				
			||||||
 | 
					        "type": "@type",
 | 
				
			||||||
 | 
					        "holder": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#holder",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "proof": {
 | 
				
			||||||
 | 
					          "@id": "https://w3id.org/security#proof",
 | 
				
			||||||
 | 
					          "@type": "@id",
 | 
				
			||||||
 | 
					          "@container": "@graph"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "verifiableCredential": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#verifiableCredential",
 | 
				
			||||||
 | 
					          "@type": "@id",
 | 
				
			||||||
 | 
					          "@container": "@graph",
 | 
				
			||||||
 | 
					          "@context": null
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "termsOfUse": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/2018/credentials#termsOfUse",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "JsonSchemaCredential": "https://www.w3.org/2018/credentials#JsonSchemaCredential",
 | 
				
			||||||
 | 
					    "JsonSchema": {
 | 
				
			||||||
 | 
					      "@id": "https://www.w3.org/2018/credentials#JsonSchema",
 | 
				
			||||||
 | 
					      "@context": {
 | 
				
			||||||
 | 
					        "@protected": true,
 | 
				
			||||||
 | 
					        "id": "@id",
 | 
				
			||||||
 | 
					        "type": "@type",
 | 
				
			||||||
 | 
					        "jsonSchema": {
 | 
				
			||||||
 | 
					          "@id": "https://w3.org/2018/credentials#jsonSchema",
 | 
				
			||||||
 | 
					          "@type": "@json"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "BitstringStatusListCredential": "https://www.w3.org/ns/credentials/status#BitstringStatusListCredential",
 | 
				
			||||||
 | 
					    "BitstringStatusList": {
 | 
				
			||||||
 | 
					      "@id": "https://www.w3.org/ns/credentials/status#BitstringStatusList",
 | 
				
			||||||
 | 
					      "@context": {
 | 
				
			||||||
 | 
					        "@protected": true,
 | 
				
			||||||
 | 
					        "id": "@id",
 | 
				
			||||||
 | 
					        "type": "@type",
 | 
				
			||||||
 | 
					        "statusPurpose": "https://www.w3.org/ns/credentials/status#statusPurpose",
 | 
				
			||||||
 | 
					        "encodedList": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/ns/credentials/status#encodedList",
 | 
				
			||||||
 | 
					          "@type": "https://w3id.org/security#multibase"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "ttl": "https://www.w3.org/ns/credentials/status#ttl",
 | 
				
			||||||
 | 
					        "statusReference": "https://www.w3.org/ns/credentials/status#statusReference",
 | 
				
			||||||
 | 
					        "statusSize": "https://www.w3.org/ns/credentials/status#statusSize",
 | 
				
			||||||
 | 
					        "statusMessage": {
 | 
				
			||||||
 | 
					          "@id": "https://www.w3.org/ns/credentials/status#statusMessage",
 | 
				
			||||||
 | 
					          "@context": {
 | 
				
			||||||
 | 
					            "@protected": true,
 | 
				
			||||||
 | 
					            "id": "@id",
 | 
				
			||||||
 | 
					            "type": "@type",
 | 
				
			||||||
 | 
					            "status": "https://www.w3.org/ns/credentials/status#status",
 | 
				
			||||||
 | 
					            "message": "https://www.w3.org/ns/credentials/status#message"
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      },
 | 
					      }
 | 
				
			||||||
      "_sd_alg": {
 | 
					    },
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jwt#_sd_alg"
 | 
					    "BitstringStatusListEntry": {
 | 
				
			||||||
      },
 | 
					      "@id": "https://www.w3.org/ns/credentials/status#BitstringStatusListEntry",
 | 
				
			||||||
      "_sd": {
 | 
					      "@context": {
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jwt#_sd"
 | 
					        "@protected": true,
 | 
				
			||||||
      },
 | 
					        "id": "@id",
 | 
				
			||||||
      "...": {
 | 
					        "type": "@type",
 | 
				
			||||||
        "@id": "https://www.iana.org/assignments/jwt#..."
 | 
					        "statusPurpose": "https://www.w3.org/ns/credentials/status#statusPurpose",
 | 
				
			||||||
      },
 | 
					        "statusListIndex": "https://www.w3.org/ns/credentials/status#statusListIndex",
 | 
				
			||||||
 | 
					        "statusListCredential": {
 | 
				
			||||||
      "digestSRI": {
 | 
					          "@id": "https://www.w3.org/ns/credentials/status#statusListCredential",
 | 
				
			||||||
        "@id": "https://www.w3.org/2018/credentials#digestSRI",
 | 
					          "@type": "@id"
 | 
				
			||||||
        "@type": "https://www.w3.org/2018/credentials#sriString"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
      "digestMultibase": {
 | 
					 | 
				
			||||||
        "@id": "https://w3id.org/security#digestMultibase",
 | 
					 | 
				
			||||||
        "@type": "https://w3id.org/security#multibase"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      "mediaType": {
 | 
					 | 
				
			||||||
        "@id": "https://schema.org/encodingFormat"
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      "description": "https://schema.org/description",
 | 
					 | 
				
			||||||
      "name": "https://schema.org/name",
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      "EnvelopedVerifiableCredential":
 | 
					 | 
				
			||||||
        "https://www.w3.org/2018/credentials#EnvelopedVerifiableCredential",
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      "VerifiableCredential": {
 | 
					 | 
				
			||||||
        "@id": "https://www.w3.org/2018/credentials#VerifiableCredential",
 | 
					 | 
				
			||||||
        "@context": {
 | 
					 | 
				
			||||||
          "@protected": true,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          "id": "@id",
 | 
					 | 
				
			||||||
          "type": "@type",
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          "credentialSchema": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#credentialSchema",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "credentialStatus": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#credentialStatus",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "credentialSubject": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#credentialSubject",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "description": "https://schema.org/description",
 | 
					 | 
				
			||||||
          "evidence": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#evidence",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "validFrom": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#validFrom",
 | 
					 | 
				
			||||||
            "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "validUntil": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#validUntil",
 | 
					 | 
				
			||||||
            "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "issuer": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#issuer",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "name": "https://schema.org/name",
 | 
					 | 
				
			||||||
          "proof": {
 | 
					 | 
				
			||||||
            "@id": "https://w3id.org/security#proof",
 | 
					 | 
				
			||||||
            "@type": "@id",
 | 
					 | 
				
			||||||
            "@container": "@graph"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "refreshService": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#refreshService",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "termsOfUse": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#termsOfUse",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "confidenceMethod": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#confidenceMethod",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "relatedResource": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#relatedResource",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      },
 | 
					      }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
      "VerifiablePresentation": {
 | 
					    "DataIntegrityProof": {
 | 
				
			||||||
        "@id": "https://www.w3.org/2018/credentials#VerifiablePresentation",
 | 
					      "@id": "https://w3id.org/security#DataIntegrityProof",
 | 
				
			||||||
        "@context": {
 | 
					      "@context": {
 | 
				
			||||||
          "@protected": true,
 | 
					        "@protected": true,
 | 
				
			||||||
 | 
					        "id": "@id",
 | 
				
			||||||
          "id": "@id",
 | 
					        "type": "@type",
 | 
				
			||||||
          "type": "@type",
 | 
					        "challenge": "https://w3id.org/security#challenge",
 | 
				
			||||||
 | 
					        "created": {
 | 
				
			||||||
          "holder": {
 | 
					          "@id": "http://purl.org/dc/terms/created",
 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#holder",
 | 
					          "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
 | 
				
			||||||
            "@type": "@id"
 | 
					        },
 | 
				
			||||||
          },
 | 
					        "domain": "https://w3id.org/security#domain",
 | 
				
			||||||
          "proof": {
 | 
					        "expires": {
 | 
				
			||||||
            "@id": "https://w3id.org/security#proof",
 | 
					          "@id": "https://w3id.org/security#expiration",
 | 
				
			||||||
            "@type": "@id",
 | 
					          "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
 | 
				
			||||||
            "@container": "@graph"
 | 
					        },
 | 
				
			||||||
          },
 | 
					        "nonce": "https://w3id.org/security#nonce",
 | 
				
			||||||
          "verifiableCredential": {
 | 
					        "previousProof": {
 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#verifiableCredential",
 | 
					          "@id": "https://w3id.org/security#previousProof",
 | 
				
			||||||
            "@type": "@id",
 | 
					          "@type": "@id"
 | 
				
			||||||
            "@container": "@graph",
 | 
					        },
 | 
				
			||||||
            "@context": null
 | 
					        "proofPurpose": {
 | 
				
			||||||
          },
 | 
					          "@id": "https://w3id.org/security#proofPurpose",
 | 
				
			||||||
          "termsOfUse": {
 | 
					          "@type": "@vocab",
 | 
				
			||||||
            "@id": "https://www.w3.org/2018/credentials#termsOfUse",
 | 
					          "@context": {
 | 
				
			||||||
            "@type": "@id"
 | 
					            "@protected": true,
 | 
				
			||||||
          }
 | 
					            "id": "@id",
 | 
				
			||||||
        }
 | 
					            "type": "@type",
 | 
				
			||||||
      },
 | 
					            "assertionMethod": {
 | 
				
			||||||
 | 
					              "@id": "https://w3id.org/security#assertionMethod",
 | 
				
			||||||
      "JsonSchemaCredential": "https://www.w3.org/2018/credentials#JsonSchemaCredential",
 | 
					              "@type": "@id",
 | 
				
			||||||
 | 
					              "@container": "@set"
 | 
				
			||||||
      "JsonSchema": {
 | 
					            },
 | 
				
			||||||
        "@id": "https://www.w3.org/2018/credentials#JsonSchema",
 | 
					            "authentication": {
 | 
				
			||||||
        "@context": {
 | 
					              "@id": "https://w3id.org/security#authenticationMethod",
 | 
				
			||||||
          "@protected": true,
 | 
					              "@type": "@id",
 | 
				
			||||||
 | 
					              "@container": "@set"
 | 
				
			||||||
          "id": "@id",
 | 
					            },
 | 
				
			||||||
          "type": "@type",
 | 
					            "capabilityInvocation": {
 | 
				
			||||||
 | 
					              "@id": "https://w3id.org/security#capabilityInvocationMethod",
 | 
				
			||||||
          "jsonSchema": {
 | 
					              "@type": "@id",
 | 
				
			||||||
            "@id": "https://w3.org/2018/credentials#jsonSchema",
 | 
					              "@container": "@set"
 | 
				
			||||||
            "@type": "@json"
 | 
					            },
 | 
				
			||||||
          }
 | 
					            "capabilityDelegation": {
 | 
				
			||||||
        }
 | 
					              "@id": "https://w3id.org/security#capabilityDelegationMethod",
 | 
				
			||||||
      },
 | 
					              "@type": "@id",
 | 
				
			||||||
 | 
					              "@container": "@set"
 | 
				
			||||||
      "BitstringStatusListCredential": "https://www.w3.org/ns/credentials/status#BitstringStatusListCredential",
 | 
					            },
 | 
				
			||||||
 | 
					            "keyAgreement": {
 | 
				
			||||||
      "BitstringStatusList": {
 | 
					              "@id": "https://w3id.org/security#keyAgreementMethod",
 | 
				
			||||||
        "@id": "https://www.w3.org/ns/credentials/status#BitstringStatusList",
 | 
					              "@type": "@id",
 | 
				
			||||||
        "@context": {
 | 
					              "@container": "@set"
 | 
				
			||||||
          "@protected": true,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          "id": "@id",
 | 
					 | 
				
			||||||
          "type": "@type",
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          "statusPurpose":
 | 
					 | 
				
			||||||
            "https://www.w3.org/ns/credentials/status#statusPurpose",
 | 
					 | 
				
			||||||
          "encodedList": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/ns/credentials/status#encodedList",
 | 
					 | 
				
			||||||
            "@type": "https://w3id.org/security#multibase"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "ttl": "https://www.w3.org/ns/credentials/status#ttl",
 | 
					 | 
				
			||||||
          "statusReference": "https://www.w3.org/ns/credentials/status#statusReference",
 | 
					 | 
				
			||||||
          "statusSize": "https://www.w3.org/ns/credentials/status#statusSize",
 | 
					 | 
				
			||||||
          "statusMessage": {
 | 
					 | 
				
			||||||
            "@id": "https://www.w3.org/ns/credentials/status#statusMessage",
 | 
					 | 
				
			||||||
            "@context": {
 | 
					 | 
				
			||||||
              "@protected": true,
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
              "id": "@id",
 | 
					 | 
				
			||||||
              "type": "@type",
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
              "status": "https://www.w3.org/ns/credentials/status#status",
 | 
					 | 
				
			||||||
              "message": "https://www.w3.org/ns/credentials/status#message"
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        },
 | 
				
			||||||
      },
 | 
					        "cryptosuite": {
 | 
				
			||||||
 | 
					          "@id": "https://w3id.org/security#cryptosuite",
 | 
				
			||||||
      "BitstringStatusListEntry": {
 | 
					          "@type": "https://w3id.org/security#cryptosuiteString"
 | 
				
			||||||
        "@id":
 | 
					        },
 | 
				
			||||||
          "https://www.w3.org/ns/credentials/status#BitstringStatusListEntry",
 | 
					        "proofValue": {
 | 
				
			||||||
        "@context": {
 | 
					          "@id": "https://w3id.org/security#proofValue",
 | 
				
			||||||
          "@protected": true,
 | 
					          "@type": "https://w3id.org/security#multibase"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
          "id": "@id",
 | 
					        "verificationMethod": {
 | 
				
			||||||
          "type": "@type",
 | 
					          "@id": "https://w3id.org/security#verificationMethod",
 | 
				
			||||||
 | 
					          "@type": "@id"
 | 
				
			||||||
          "statusPurpose":
 | 
					 | 
				
			||||||
            "https://www.w3.org/ns/credentials/status#statusPurpose",
 | 
					 | 
				
			||||||
          "statusListIndex":
 | 
					 | 
				
			||||||
            "https://www.w3.org/ns/credentials/status#statusListIndex",
 | 
					 | 
				
			||||||
          "statusListCredential": {
 | 
					 | 
				
			||||||
            "@id":
 | 
					 | 
				
			||||||
              "https://www.w3.org/ns/credentials/status#statusListCredential",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      },
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      "DataIntegrityProof": {
 | 
					 | 
				
			||||||
        "@id": "https://w3id.org/security#DataIntegrityProof",
 | 
					 | 
				
			||||||
        "@context": {
 | 
					 | 
				
			||||||
          "@protected": true,
 | 
					 | 
				
			||||||
          "id": "@id",
 | 
					 | 
				
			||||||
          "type": "@type",
 | 
					 | 
				
			||||||
          "challenge": "https://w3id.org/security#challenge",
 | 
					 | 
				
			||||||
          "created": {
 | 
					 | 
				
			||||||
            "@id": "http://purl.org/dc/terms/created",
 | 
					 | 
				
			||||||
            "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "domain": "https://w3id.org/security#domain",
 | 
					 | 
				
			||||||
          "expires": {
 | 
					 | 
				
			||||||
            "@id": "https://w3id.org/security#expiration",
 | 
					 | 
				
			||||||
            "@type": "http://www.w3.org/2001/XMLSchema#dateTime"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "nonce": "https://w3id.org/security#nonce",
 | 
					 | 
				
			||||||
          "previousProof": {
 | 
					 | 
				
			||||||
            "@id": "https://w3id.org/security#previousProof",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "proofPurpose": {
 | 
					 | 
				
			||||||
            "@id": "https://w3id.org/security#proofPurpose",
 | 
					 | 
				
			||||||
            "@type": "@vocab",
 | 
					 | 
				
			||||||
            "@context": {
 | 
					 | 
				
			||||||
              "@protected": true,
 | 
					 | 
				
			||||||
              "id": "@id",
 | 
					 | 
				
			||||||
              "type": "@type",
 | 
					 | 
				
			||||||
              "assertionMethod": {
 | 
					 | 
				
			||||||
                "@id": "https://w3id.org/security#assertionMethod",
 | 
					 | 
				
			||||||
                "@type": "@id",
 | 
					 | 
				
			||||||
                "@container": "@set"
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              "authentication": {
 | 
					 | 
				
			||||||
                "@id": "https://w3id.org/security#authenticationMethod",
 | 
					 | 
				
			||||||
                "@type": "@id",
 | 
					 | 
				
			||||||
                "@container": "@set"
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              "capabilityInvocation": {
 | 
					 | 
				
			||||||
                "@id": "https://w3id.org/security#capabilityInvocationMethod",
 | 
					 | 
				
			||||||
                "@type": "@id",
 | 
					 | 
				
			||||||
                "@container": "@set"
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              "capabilityDelegation": {
 | 
					 | 
				
			||||||
                "@id": "https://w3id.org/security#capabilityDelegationMethod",
 | 
					 | 
				
			||||||
                "@type": "@id",
 | 
					 | 
				
			||||||
                "@container": "@set"
 | 
					 | 
				
			||||||
              },
 | 
					 | 
				
			||||||
              "keyAgreement": {
 | 
					 | 
				
			||||||
                "@id": "https://w3id.org/security#keyAgreementMethod",
 | 
					 | 
				
			||||||
                "@type": "@id",
 | 
					 | 
				
			||||||
                "@container": "@set"
 | 
					 | 
				
			||||||
              }
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "cryptosuite": {
 | 
					 | 
				
			||||||
            "@id": "https://w3id.org/security#cryptosuite",
 | 
					 | 
				
			||||||
            "@type": "https://w3id.org/security#cryptosuiteString"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "proofValue": {
 | 
					 | 
				
			||||||
            "@id": "https://w3id.org/security#proofValue",
 | 
					 | 
				
			||||||
            "@type": "https://w3id.org/security#multibase"
 | 
					 | 
				
			||||||
          },
 | 
					 | 
				
			||||||
          "verificationMethod": {
 | 
					 | 
				
			||||||
            "@id": "https://w3id.org/security#verificationMethod",
 | 
					 | 
				
			||||||
            "@type": "@id"
 | 
					 | 
				
			||||||
          }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user