@sphereon/ssi-sdk-ext.identifier-resolution 0.36.1-feature.integration.fides.68 → 0.36.1-feature.integration.fides.74

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.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../src/types/common.ts","../src/types/externalIdentifierTypes.ts","../src/types/managedIdentifierTypes.ts","../src/types/IIdentifierResolution.ts","../src/agent/IdentifierResolution.ts","../src/functions/managedIdentifierFunctions.ts","../src/functions/externalIdentifierFunctions.ts","../src/functions/externalOIDFIdentifier.ts","../src/functions/LegacySupport.ts","../src/index.ts"],"sourcesContent":["{\n \"IIdentifierResolution\": {\n \"components\": {\n \"schemas\": {\n \"ExternalIdentifierOpts\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cOpts\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"verify\": {\n \"type\": \"boolean\"\n },\n \"verificationTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"allowNoTrustAnchorsFound\": {\n \"type\": \"boolean\"\n },\n \"trustRootWhenNoAnchors\": {\n \"type\": \"boolean\"\n },\n \"allowSingleNoCAChainElement\": {\n \"type\": \"boolean\"\n },\n \"blindlyTrustedAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"disallowReversedChain\": {\n \"type\": \"boolean\"\n },\n \"client\": {\n \"type\": \"object\",\n \"properties\": {\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientIdScheme\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"localResolution\": {\n \"type\": \"boolean\"\n },\n \"uniresolverResolution\": {\n \"type\": \"boolean\"\n },\n \"resolverResolution\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"entity_id\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"identifier\"\n ]\n }\n ]\n },\n \"ExternalIdentifierType\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n ],\n \"description\": \"Use whenever we need to resolve an external identifier. We can pass in kids, DIDs, and x5chains\\n\\nThe functions below can be used to check the type, and they also provide the proper runtime types\"\n },\n \"JWK\": {\n \"type\": \"object\",\n \"properties\": {\n \"kty\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwkKeyType\"\n },\n {\n \"$ref\": \"#/components/schemas/JwkKeyTypeString\"\n }\n ]\n },\n \"crv\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JoseCurve\"\n },\n {\n \"$ref\": \"#/components/schemas/JoseCurveString\"\n }\n ]\n },\n \"alg\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JoseSignatureAlgorithm\"\n },\n {\n \"$ref\": \"#/components/schemas/JoseSignatureAlgorithmString\"\n }\n ]\n },\n \"x\": {\n \"type\": \"string\"\n },\n \"y\": {\n \"type\": \"string\"\n },\n \"e\": {\n \"type\": \"string\"\n },\n \"n\": {\n \"type\": \"string\"\n },\n \"d\": {\n \"type\": \"string\"\n },\n \"dp\": {\n \"type\": \"string\"\n },\n \"dq\": {\n \"type\": \"string\"\n },\n \"ext\": {\n \"type\": \"boolean\"\n },\n \"k\": {\n \"type\": \"string\"\n },\n \"key_ops\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JoseKeyOperation\"\n },\n {\n \"$ref\": \"#/components/schemas/JoseKeyOperationString\"\n }\n ]\n }\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"oth\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"d\": {\n \"type\": \"string\"\n },\n \"r\": {\n \"type\": \"string\"\n },\n \"t\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"p\": {\n \"type\": \"string\"\n },\n \"q\": {\n \"type\": \"string\"\n },\n \"qi\": {\n \"type\": \"string\"\n },\n \"use\": {\n \"type\": \"string\"\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"JWK \\\"x5c\\\" (X.509 Certificate Chain) Parameter.\"\n },\n \"x5t\": {\n \"type\": \"string\",\n \"description\": \"JWK \\\"x5t\\\" (X.509 Certificate SHA-1 Thumbprint) Parameter.\"\n },\n \"x5t#S256\": {\n \"type\": \"string\",\n \"description\": \"\\\"x5t#S256\\\" (X.509 Certificate SHA-256 Thumbprint) Parameter.\"\n },\n \"x5u\": {\n \"type\": \"string\",\n \"description\": \"JWK \\\"x5u\\\" (X.509 URL) Parameter.\"\n },\n \"iv\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kty\"\n ]\n },\n \"JwkKeyType\": {\n \"type\": \"string\",\n \"enum\": [\n \"EC\",\n \"RSA\",\n \"oct\",\n \"OKP\"\n ]\n },\n \"JwkKeyTypeString\": {\n \"type\": \"string\",\n \"enum\": [\n \"EC\",\n \"RSA\",\n \"oct\",\n \"OKP\"\n ]\n },\n \"JoseCurve\": {\n \"type\": \"string\",\n \"enum\": [\n \"P-256\",\n \"P-384\",\n \"P-521\",\n \"X25519\",\n \"X448\",\n \"EdDSA\",\n \"Ed25519\",\n \"Ed448\",\n \"secp256k1\"\n ]\n },\n \"JoseCurveString\": {\n \"type\": \"string\",\n \"enum\": [\n \"P-256\",\n \"P-384\",\n \"P-521\",\n \"X25519\",\n \"X448\",\n \"EdDSA\",\n \"Ed25519\",\n \"Ed448\",\n \"secp256k1\"\n ]\n },\n \"JoseSignatureAlgorithm\": {\n \"type\": \"string\",\n \"enum\": [\n \"RS256\",\n \"RS384\",\n \"RS512\",\n \"ES256\",\n \"ES256K\",\n \"ES384\",\n \"ES512\",\n \"EdDSA\",\n \"HS256\",\n \"HS384\",\n \"HS512\",\n \"PS256\",\n \"PS384\",\n \"PS512\",\n \"none\"\n ]\n },\n \"JoseSignatureAlgorithmString\": {\n \"type\": \"string\",\n \"enum\": [\n \"RS256\",\n \"RS384\",\n \"RS512\",\n \"ES256\",\n \"ES256K\",\n \"ES384\",\n \"ES512\",\n \"EdDSA\",\n \"HS256\",\n \"HS384\",\n \"HS512\",\n \"PS256\",\n \"PS384\",\n \"PS512\",\n \"none\"\n ]\n },\n \"JoseKeyOperation\": {\n \"type\": \"string\",\n \"enum\": [\n \"sign\",\n \"verify\",\n \"encrypt\",\n \"decrypt\",\n \"wrapKey\",\n \"unwrapKey\",\n \"deriveKey\",\n \"deriveBits\"\n ]\n },\n \"JoseKeyOperationString\": {\n \"type\": \"string\",\n \"enum\": [\n \"sign\",\n \"verify\",\n \"encrypt\",\n \"decrypt\",\n \"wrapKey\",\n \"unwrapKey\",\n \"deriveKey\",\n \"deriveBits\"\n ]\n },\n \"ExternalIdentifierX5cOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"verify\": {\n \"type\": \"boolean\"\n },\n \"verificationTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"allowNoTrustAnchorsFound\": {\n \"type\": \"boolean\"\n },\n \"trustRootWhenNoAnchors\": {\n \"type\": \"boolean\"\n },\n \"allowSingleNoCAChainElement\": {\n \"type\": \"boolean\"\n },\n \"blindlyTrustedAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"disallowReversedChain\": {\n \"type\": \"boolean\"\n },\n \"client\": {\n \"type\": \"object\",\n \"properties\": {\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientIdScheme\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ClientIdScheme\": {\n \"type\": \"string\",\n \"enum\": [\n \"x509_san_dns\",\n \"x509_san_uri\"\n ]\n },\n \"DIDDocumentSection\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"publicKey\",\n \"service\",\n \"authentication\",\n \"assertionMethod\",\n \"keyAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ],\n \"description\": \"Refers to a section of a DID document. Either the list of verification methods or services or one of the verification relationships.\\n\\nSee {@link https://www.w3.org/TR/did-core/#verification-relationships | verification relationships }\"\n },\n \"ExternalIdentifierResult\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"didDocument\": {\n \"$ref\": \"#/components/schemas/DIDDocument\"\n },\n \"didJwks\": {\n \"$ref\": \"#/components/schemas/DidDocumentJwks\"\n },\n \"didResolutionResult\": {\n \"$ref\": \"#/components/schemas/Omit<DIDResolutionResult,\\\"didDocument\\\">\"\n },\n \"didParsed\": {\n \"$ref\": \"#/components/schemas/IParsedDID\"\n }\n },\n \"required\": [\n \"did\",\n \"didParsed\",\n \"didResolutionResult\",\n \"jwks\",\n \"method\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"issuerJWK\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"verificationResult\": {\n \"$ref\": \"#/components/schemas/X509ValidationResult\"\n },\n \"certificates\": {\n \"type\": \"array\",\n \"items\": {}\n }\n },\n \"required\": [\n \"certificates\",\n \"issuerJWK\",\n \"jwks\",\n \"method\",\n \"x5c\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"required\": [\n \"jwk\",\n \"jwks\",\n \"method\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"trustedAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/TrustedAnchor\"\n }\n },\n \"errorList\": {\n \"$ref\": \"#/components/schemas/Record<TrustedAnchor,ErrorMessage>\"\n },\n \"jwtPayload\": {\n \"$ref\": \"#/components/schemas/JwtPayload\"\n },\n \"trustEstablished\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"jwks\",\n \"method\",\n \"trustEstablished\",\n \"trustedAnchors\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"coseKey\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"required\": [\n \"coseKey\",\n \"jwks\",\n \"method\"\n ]\n }\n ]\n },\n \"ExternalIdentifierMethod\": {\n \"type\": \"string\",\n \"enum\": [\n \"did\",\n \"jwk\",\n \"x5c\",\n \"kid\",\n \"cose_key\",\n \"oidc-discovery\",\n \"jwks-url\",\n \"oid4vci-issuer\",\n \"entity_id\"\n ]\n },\n \"ExternalJwkInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"jwk\",\n \"jwkThumbprint\",\n \"publicKeyHex\"\n ],\n \"additionalProperties\": false\n },\n \"DIDDocument\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"authentication\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"assertionMethod\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"keyAgreement\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"capabilityInvocation\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"capabilityDelegation\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"https://www.w3.org/ns/did/v1\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"controller\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n },\n \"service\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Service\"\n }\n },\n \"publicKey\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n },\n \"deprecated\": true\n }\n },\n \"required\": [\n \"id\"\n ],\n \"description\": \"Represents a DID document.\"\n },\n \"VerificationMethod\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"controller\": {\n \"type\": \"string\"\n },\n \"publicKeyBase58\": {\n \"type\": \"string\"\n },\n \"publicKeyBase64\": {\n \"type\": \"string\"\n },\n \"publicKeyJwk\": {\n \"$ref\": \"#/components/schemas/JsonWebKey\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\"\n },\n \"publicKeyMultibase\": {\n \"type\": \"string\"\n },\n \"blockchainAccountId\": {\n \"type\": \"string\"\n },\n \"ethereumAddress\": {\n \"type\": \"string\"\n },\n \"conditionOr\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n },\n \"conditionAnd\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n },\n \"threshold\": {\n \"type\": \"number\"\n },\n \"conditionThreshold\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n },\n \"conditionWeightedThreshold\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ConditionWeightedThreshold\"\n }\n },\n \"conditionDelegated\": {\n \"type\": \"string\"\n },\n \"relationshipParent\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"relationshipChild\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"relationshipSibling\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"id\",\n \"type\",\n \"controller\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Represents the properties of a Verification Method listed in a DID document.\\n\\nThis data type includes public key representations that are no longer present in the spec but are still used by several DID methods / resolvers and kept for backward compatibility.\"\n },\n \"JsonWebKey\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"string\"\n },\n \"crv\": {\n \"type\": \"string\"\n },\n \"e\": {\n \"type\": \"string\"\n },\n \"ext\": {\n \"type\": \"boolean\"\n },\n \"key_ops\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"kty\": {\n \"type\": \"string\"\n },\n \"n\": {\n \"type\": \"string\"\n },\n \"use\": {\n \"type\": \"string\"\n },\n \"x\": {\n \"type\": \"string\"\n },\n \"y\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kty\"\n ],\n \"description\": \"Encapsulates a JSON web key type that includes only the public properties that can be used in DID documents.\\n\\nThe private properties are intentionally omitted to discourage the use (and accidental disclosure) of private keys in DID documents.\"\n },\n \"ConditionWeightedThreshold\": {\n \"type\": \"object\",\n \"properties\": {\n \"condition\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n },\n \"weight\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"condition\",\n \"weight\"\n ],\n \"additionalProperties\": false\n },\n \"Service\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"serviceEndpoint\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ServiceEndpoint\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ServiceEndpoint\"\n }\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"type\",\n \"serviceEndpoint\"\n ],\n \"description\": \"Represents a Service entry in a {@link https://www.w3.org/TR/did-core/#did-document-properties | DID document } .\"\n },\n \"ServiceEndpoint\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/Record<string,any>\"\n }\n ],\n \"description\": \"Represents an endpoint of a Service entry in a DID document.\"\n },\n \"Record<string,any>\": {\n \"type\": \"object\"\n },\n \"DidDocumentJwks\": {\n \"$ref\": \"#/components/schemas/Record<Exclude<DIDDocumentSection,(\\\"publicKey\\\"|\\\"service\\\")>,def-interface-.ts-36172-36897-.ts-0-63936[]>\"\n },\n \"Record<Exclude<DIDDocumentSection,(\\\"publicKey\\\"|\\\"service\\\")>,def-interface-.ts-36172-36897-.ts-0-63936[]>\": {\n \"type\": \"object\",\n \"properties\": {\n \"verificationMethod\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"authentication\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"assertionMethod\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"keyAgreement\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"capabilityInvocation\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"capabilityDelegation\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n }\n },\n \"required\": [\n \"verificationMethod\",\n \"authentication\",\n \"assertionMethod\",\n \"keyAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ],\n \"additionalProperties\": false\n },\n \"Omit<DIDResolutionResult,\\\"didDocument\\\">\": {\n \"$ref\": \"#/components/schemas/Pick<DIDResolutionResult,Exclude<(\\\"@context\\\"|\\\"didResolutionMetadata\\\"|\\\"didDocument\\\"|\\\"didDocumentMetadata\\\"),\\\"didDocument\\\">>\"\n },\n \"Pick<DIDResolutionResult,Exclude<(\\\"@context\\\"|\\\"didResolutionMetadata\\\"|\\\"didDocument\\\"|\\\"didDocumentMetadata\\\"),\\\"didDocument\\\">>\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"https://w3id.org/did-resolution/v1\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"didResolutionMetadata\": {\n \"$ref\": \"#/components/schemas/DIDResolutionMetadata\"\n },\n \"didDocumentMetadata\": {\n \"$ref\": \"#/components/schemas/DIDDocumentMetadata\"\n }\n },\n \"required\": [\n \"didResolutionMetadata\",\n \"didDocumentMetadata\"\n ],\n \"additionalProperties\": false\n },\n \"DIDResolutionMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"contentType\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Encapsulates the resolution metadata resulting from a {@link Resolvable.resolve } operation.\"\n },\n \"DIDDocumentMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"created\": {\n \"type\": \"string\"\n },\n \"updated\": {\n \"type\": \"string\"\n },\n \"deactivated\": {\n \"type\": \"boolean\"\n },\n \"versionId\": {\n \"type\": \"string\"\n },\n \"nextUpdate\": {\n \"type\": \"string\"\n },\n \"nextVersionId\": {\n \"type\": \"string\"\n },\n \"equivalentId\": {\n \"type\": \"string\"\n },\n \"canonicalId\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Represents metadata about the DID document resulting from a {@link Resolvable.resolve } operation.\"\n },\n \"IParsedDID\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"didUrl\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"fragment\": {\n \"type\": \"string\"\n },\n \"query\": {\n \"type\": \"string\"\n },\n \"params\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"did\",\n \"didUrl\",\n \"method\",\n \"id\"\n ],\n \"additionalProperties\": false\n },\n \"X509ValidationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"error\": {\n \"type\": \"boolean\"\n },\n \"critical\": {\n \"type\": \"boolean\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"detailMessage\": {\n \"type\": \"string\"\n },\n \"verificationTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"certificateChain\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/CertificateInfo\"\n }\n },\n \"trustAnchor\": {\n \"$ref\": \"#/components/schemas/CertificateInfo\"\n },\n \"client\": {\n \"type\": \"object\",\n \"properties\": {\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientIdScheme\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"error\",\n \"critical\",\n \"message\",\n \"verificationTime\"\n ],\n \"additionalProperties\": false\n },\n \"CertificateInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"certificate\": {},\n \"notBefore\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"notAfter\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"publicKeyJWK\": {},\n \"issuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"dn\": {\n \"$ref\": \"#/components/schemas/DNInfo\"\n }\n },\n \"required\": [\n \"dn\"\n ],\n \"additionalProperties\": false\n },\n \"subject\": {\n \"type\": \"object\",\n \"properties\": {\n \"dn\": {\n \"$ref\": \"#/components/schemas/DNInfo\"\n },\n \"subjectAlternativeNames\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubjectAlternativeName\"\n }\n }\n },\n \"required\": [\n \"dn\",\n \"subjectAlternativeNames\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"notBefore\",\n \"notAfter\",\n \"issuer\",\n \"subject\"\n ],\n \"additionalProperties\": false\n },\n \"DNInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"DN\": {\n \"type\": \"string\"\n },\n \"attributes\": {\n \"$ref\": \"#/components/schemas/Record<string,string>\"\n }\n },\n \"required\": [\n \"DN\",\n \"attributes\"\n ],\n \"additionalProperties\": false\n },\n \"Record<string,string>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"SubjectAlternativeName\": {\n \"type\": \"object\",\n \"properties\": {\n \"value\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"$ref\": \"#/components/schemas/SubjectAlternativeGeneralName\"\n }\n },\n \"required\": [\n \"value\",\n \"type\"\n ],\n \"additionalProperties\": false\n },\n \"SubjectAlternativeGeneralName\": {\n \"type\": \"number\",\n \"enum\": [\n 1,\n 2,\n 6,\n 7\n ],\n \"description\": \"otherName [0] OtherName, rfc822Name [1] IA5String, dNSName [2] IA5String, x400Address [3] ORAddress, directoryName [4] Name, ediPartyName [5] EDIPartyName, uniformResourceIdentifier [6] IA5String, iPAddress [7] OCTET STRING, registeredID [8] OBJECT IDENTIFIER }\"\n },\n \"ExternalIdentifierX5cResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"issuerJWK\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"verificationResult\": {\n \"$ref\": \"#/components/schemas/X509ValidationResult\"\n },\n \"certificates\": {\n \"type\": \"array\",\n \"items\": {}\n }\n },\n \"required\": [\n \"certificates\",\n \"issuerJWK\",\n \"jwks\",\n \"method\",\n \"x5c\"\n ],\n \"additionalProperties\": false\n },\n \"TrustedAnchor\": {\n \"type\": \"string\"\n },\n \"Record<TrustedAnchor,ErrorMessage>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/ErrorMessage\"\n }\n },\n \"ErrorMessage\": {\n \"type\": \"string\"\n },\n \"JwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iss\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {}\n },\n \"ICoseKeyJson\": {\n \"type\": \"object\",\n \"properties\": {\n \"kty\": {\n \"$ref\": \"#/components/schemas/ICoseKeyType\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"alg\": {\n \"$ref\": \"#/components/schemas/ICoseSignatureAlgorithm\"\n },\n \"key_ops\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICoseKeyOperation\"\n }\n },\n \"baseIV\": {\n \"type\": \"string\"\n },\n \"crv\": {\n \"$ref\": \"#/components/schemas/ICoseCurve\"\n },\n \"x\": {\n \"type\": \"string\"\n },\n \"y\": {\n \"type\": \"string\"\n },\n \"d\": {\n \"type\": \"string\"\n },\n \"x5chain\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"kty\"\n ],\n \"additionalProperties\": {},\n \"description\": \"See our mdl-mdoc and crypto library for more information https://github.com/Sphereon-Opensource/mdoc-cbor-crypto-multiplatform\\n\\nConversion functions are available in above library. Conversion functions are also available for TS in our\"\n },\n \"ICoseKeyType\": {\n \"type\": \"number\",\n \"enum\": [\n 1,\n 2,\n 3,\n 4,\n 0\n ]\n },\n \"ICoseSignatureAlgorithm\": {\n \"type\": \"number\",\n \"enum\": [\n -7,\n -47,\n -35,\n -36,\n -8,\n 4,\n 5,\n 6,\n 7,\n -37,\n -38,\n -39\n ]\n },\n \"ICoseKeyOperation\": {\n \"type\": \"number\",\n \"enum\": [\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10\n ]\n },\n \"ICoseCurve\": {\n \"type\": \"number\",\n \"enum\": [\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n -1\n ]\n },\n \"ExternalIdentifierCoseKeyOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ExternalIdentifierCoseKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"coseKey\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"required\": [\n \"coseKey\",\n \"jwks\",\n \"method\"\n ],\n \"additionalProperties\": false\n },\n \"ExternalIdentifierDidOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"localResolution\": {\n \"type\": \"boolean\"\n },\n \"uniresolverResolution\": {\n \"type\": \"boolean\"\n },\n \"resolverResolution\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ExternalIdentifierDidResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"didDocument\": {\n \"$ref\": \"#/components/schemas/DIDDocument\"\n },\n \"didJwks\": {\n \"$ref\": \"#/components/schemas/DidDocumentJwks\"\n },\n \"didResolutionResult\": {\n \"$ref\": \"#/components/schemas/Omit<DIDResolutionResult,\\\"didDocument\\\">\"\n },\n \"didParsed\": {\n \"$ref\": \"#/components/schemas/IParsedDID\"\n }\n },\n \"required\": [\n \"did\",\n \"didParsed\",\n \"didResolutionResult\",\n \"jwks\",\n \"method\"\n ],\n \"additionalProperties\": false\n },\n \"ExternalIdentifierJwkOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cOpts\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ExternalIdentifierJwkResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"required\": [\n \"jwk\",\n \"jwks\",\n \"method\"\n ],\n \"additionalProperties\": false\n },\n \"ExternalIdentifierOIDFEntityIdOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"entity_id\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ExternalIdentifierOIDFEntityIdResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"entity_id\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"trustedAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/TrustedAnchor\"\n }\n },\n \"errorList\": {\n \"$ref\": \"#/components/schemas/Record<TrustedAnchor,ErrorMessage>\"\n },\n \"jwtPayload\": {\n \"$ref\": \"#/components/schemas/JwtPayload\"\n },\n \"trustEstablished\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"jwks\",\n \"method\",\n \"trustEstablished\",\n \"trustedAnchors\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierOptsOrResult\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\",\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\",\n \"x5c\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IKey\"\n }\n },\n \"verificationMethodSection\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"did\",\n \"identifier\",\n \"issuer\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"keys\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"keyType\": {\n \"$ref\": \"#/components/schemas/TKeyType\"\n },\n \"offlineWhenNoDIDRegistered\": {\n \"type\": \"boolean\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"controllerKey\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"oid4vci-issuer\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n }\n ]\n },\n \"ManagedIdentifierMethod\": {\n \"type\": \"string\",\n \"enum\": [\n \"did\",\n \"jwk\",\n \"x5c\",\n \"kid\",\n \"key\",\n \"cose_key\",\n \"oid4vci-issuer\"\n ]\n },\n \"ManagedIdentifierOpts\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"keyType\": {\n \"$ref\": \"#/components/schemas/TKeyType\"\n },\n \"offlineWhenNoDIDRegistered\": {\n \"type\": \"boolean\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"controllerKey\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"oid4vci-issuer\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n }\n ]\n },\n \"IIdentifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\",\n \"description\": \"Decentralized identifier\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"Optional. Identifier alias. Can be used to reference an object in an external system\"\n },\n \"provider\": {\n \"type\": \"string\",\n \"description\": \"Identifier provider name\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\",\n \"description\": \"Controller key id\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"description\": \"Array of managed keys\"\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IService\"\n },\n \"description\": \"Array of services\"\n }\n },\n \"required\": [\n \"did\",\n \"provider\",\n \"keys\",\n \"services\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Identifier interface\"\n },\n \"IKey\": {\n \"type\": \"object\",\n \"properties\": {\n \"kid\": {\n \"type\": \"string\",\n \"description\": \"Key ID\"\n },\n \"kms\": {\n \"type\": \"string\",\n \"description\": \"Key Management System\"\n },\n \"type\": {\n \"$ref\": \"#/components/schemas/TKeyType\",\n \"description\": \"Key type\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\",\n \"description\": \"Public key\"\n },\n \"privateKeyHex\": {\n \"type\": \"string\",\n \"description\": \"Optional. Private key\"\n },\n \"meta\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/KeyMetadata\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Optional. Key metadata. This should be used to determine which algorithms are supported.\"\n }\n },\n \"required\": [\n \"kid\",\n \"kms\",\n \"type\",\n \"publicKeyHex\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Cryptographic key\"\n },\n \"TKeyType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\",\n \"Secp256r1\",\n \"X25519\",\n \"Bls12381G1\",\n \"Bls12381G2\",\n \"RSA\"\n ],\n \"description\": \"Cryptographic key type.\"\n },\n \"KeyMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"algorithms\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"This encapsulates data about a key.\\n\\nImplementations of {@link @veramo/key-manager#AbstractKeyManagementSystem | AbstractKeyManagementSystem } should populate this object, for each key, with the algorithms that can be performed using it.\\n\\nThis can also be used to add various tags to the keys under management.\"\n },\n \"IService\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Service type\"\n },\n \"serviceEndpoint\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IServiceEndpoint\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IServiceEndpoint\"\n }\n }\n ],\n \"description\": \"Endpoint URL\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Optional. Description\"\n }\n },\n \"required\": [\n \"id\",\n \"type\",\n \"serviceEndpoint\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Identifier service\"\n },\n \"IServiceEndpoint\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/Record<string,any>\"\n }\n ],\n \"description\": \"Represents a service endpoint URL or a map of URLs\"\n },\n \"ManagedIdentifierType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n }\n ],\n \"description\": \"Use whenever we need to pass in an identifier. We can pass in kids, DIDs, IIdentifier objects and x5chains\\n\\nThe functions below can be used to check the type, and they also provide the proper 'runtime' types\"\n },\n \"ManagedIdentifierResult\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\",\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\",\n \"x5c\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IKey\"\n }\n },\n \"verificationMethodSection\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"did\",\n \"identifier\",\n \"issuer\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"keys\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n }\n ]\n },\n \"ManagedIdentifierCoseKeyOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierCoseKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierDidOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"keyType\": {\n \"$ref\": \"#/components/schemas/TKeyType\"\n },\n \"offlineWhenNoDIDRegistered\": {\n \"type\": \"boolean\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"controllerKey\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierDidResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IKey\"\n }\n },\n \"verificationMethodSection\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"did\",\n \"identifier\",\n \"issuer\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"keys\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierJwkOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierJwkResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierKeyOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"key\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IKey\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierKidOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierKidResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierOID4VCIssuerOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"oid4vci-issuer\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierOID4VCIssuerResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"oid4vci-issuer\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierX5cOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierX5cResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\",\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\",\n \"x5c\"\n ],\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"identifierExternalResolve\": {\n \"description\": \"Main method for external identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierResult\"\n }\n },\n \"identifierExternalResolveByCoseKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierCoseKeyOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierCoseKeyResult\"\n }\n },\n \"identifierExternalResolveByDid\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierDidOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierDidResult\"\n }\n },\n \"identifierExternalResolveByJwk\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierJwkOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierJwkResult\"\n }\n },\n \"identifierExternalResolveByOIDFEntityId\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierOIDFEntityIdOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierOIDFEntityIdResult\"\n }\n },\n \"identifierExternalResolveByX5c\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"identifierManagedGet\": {\n \"description\": \"Main method for managed identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOptsOrResult\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierResult\"\n }\n },\n \"identifierManagedGetByCoseKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierCoseKeyOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierCoseKeyResult\"\n }\n },\n \"identifierManagedGetByDid\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierDidOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierDidResult\"\n }\n },\n \"identifierManagedGetByJwk\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierJwkOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierJwkResult\"\n }\n },\n \"identifierManagedGetByKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierKeyOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierKeyResult\"\n }\n },\n \"identifierManagedGetByKid\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierKidOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierKidResult\"\n }\n },\n \"identifierManagedGetByOID4VCIssuer\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOID4VCIssuerOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOID4VCIssuerResult\"\n }\n },\n \"identifierManagedGetByX5c\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierX5cOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierX5cResult\"\n }\n }\n }\n }\n }\n}","import type { ICoseKeyJson, JWK } from '@sphereon/ssi-types'\nimport type { IIdentifier, IKey } from '@veramo/core'\nimport type { ExternalIdentifierType } from './externalIdentifierTypes'\nimport type { ManagedIdentifierType } from './managedIdentifierTypes'\n\nexport interface JwkInfo {\n jwk: JWK\n jwkThumbprint: string\n}\n\nexport function isDidIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is IIdentifier | string {\n return isIIdentifier(identifier) || (typeof identifier === 'string' && identifier.startsWith('did:'))\n}\n\nexport function isIIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is IIdentifier {\n return typeof identifier === 'object' && !Array.isArray(identifier) && 'did' in identifier && 'keys' in identifier\n}\n\nexport function isJwkIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is JWK {\n return typeof identifier === 'object' && !Array.isArray(identifier) && 'kty' in identifier\n}\n\nexport function isOidcDiscoveryIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string {\n return typeof identifier === 'string' && identifier.startsWith('http') && identifier.endsWith('/.well-known/openid-configuration')\n}\n\nexport function isJwksUrlIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string {\n return typeof identifier === 'string' && identifier.startsWith('http') && identifier.endsWith('jwks.json')\n}\n\nexport function isKidIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string {\n return typeof identifier === 'string' && !identifier.startsWith('did:') && !identifier.startsWith('http')\n}\n\nexport function isOID4VCIssuerIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string {\n return typeof identifier === 'string' && identifier.startsWith('http') && identifier.endsWith('/.well-known/openid-credential-issuer')\n}\n\nexport function isKeyIdentifier(identifier: ManagedIdentifierType): identifier is IKey {\n return (\n typeof identifier === 'string' &&\n !Array.isArray(identifier) &&\n typeof identifier === 'object' &&\n `kid` in identifier &&\n 'publicKeyHex' in identifier\n )\n}\n\nexport function isCoseKeyIdentifier(identifier: ManagedIdentifierType): identifier is ICoseKeyJson {\n return typeof identifier === 'object' && `kty` in identifier && ('baseIV' in identifier || 'x5chain' in identifier) && !('x5c' in identifier)\n}\n\nexport function isOIDFEntityIdIdentifier(identifier: ManagedIdentifierType): identifier is string {\n return typeof identifier === 'string' && identifier.startsWith('https://')\n}\n\nexport function isX5cIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string[] {\n return Array.isArray(identifier) && identifier.length > 0 // todo: Do we want to do additional validation? We know it must be DER and thus hex for instance\n}\n","import type { DidDocumentJwks } from '@sphereon/ssi-sdk-ext.did-utils'\nimport type { ICoseKeyJson, IValidationResult, JWK } from '@sphereon/ssi-types'\nimport type { X509CertificateChainValidationOpts, X509ValidationResult } from '@sphereon/ssi-sdk-ext.x509-utils'\nimport type { IParsedDID } from '@sphereon/ssi-types'\nimport type { DIDDocument, DIDDocumentSection, DIDResolutionResult } from '@veramo/core'\nimport {\n isCoseKeyIdentifier,\n isDidIdentifier,\n isOIDFEntityIdIdentifier,\n isJwkIdentifier,\n isJwksUrlIdentifier,\n isKidIdentifier,\n isOidcDiscoveryIdentifier,\n isX5cIdentifier,\n type JwkInfo,\n} from './common'\n// import type { JwsPayload } from './IJwtService'\n\n/**\n * Use whenever we need to resolve an external identifier. We can pass in kids, DIDs, and x5chains\n *\n * The functions below can be used to check the type, and they also provide the proper runtime types\n */\nexport type ExternalIdentifierType = string | string[] | JWK\n\nexport type ExternalIdentifierOptsBase = {\n method?: ExternalIdentifierMethod // If provided always takes precedences otherwise it will be inferred from the identifier\n identifier: ExternalIdentifierType\n}\n\nexport type ExternalIdentifierDidOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'did'\n identifier: string\n noVerificationMethodFallback?: boolean\n vmRelationship?: DIDDocumentSection\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\nexport function isExternalIdentifierDidOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierDidOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'did') || isDidIdentifier(identifier)\n}\n\nexport type ExternalIdentifierOpts = (\n | ExternalIdentifierJwkOpts\n | ExternalIdentifierX5cOpts\n | ExternalIdentifierDidOpts\n | ExternalIdentifierKidOpts\n | ExternalIdentifierCoseKeyOpts\n | ExternalIdentifierOIDFEntityIdOpts\n) &\n ExternalIdentifierOptsBase\n\nexport type ExternalIdentifierKidOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'kid'\n identifier: string\n}\n\nexport function isExternalIdentifierKidOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierKidOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'kid') || isKidIdentifier(identifier)\n}\n\nexport type ExternalIdentifierJwkOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'jwk'\n identifier: JWK\n x5c?: ExternalIdentifierX5cOpts\n}\n\nexport function isExternalIdentifierJwkOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierJwkOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'jwk') || isJwkIdentifier(identifier)\n}\n\nexport type ExternalIdentifierCoseKeyOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'cose_key'\n identifier: ICoseKeyJson\n}\n\nexport function isExternalIdentifierCoseKeyOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierCoseKeyOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'cose_key') || isCoseKeyIdentifier(identifier)\n}\n\nexport type ExternalIdentifierOidcDiscoveryOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'oidc-discovery'\n identifier: string\n}\n\nexport function isExternalIdentifierOidcDiscoveryOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierJwkOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'oidc-discovery') || isOidcDiscoveryIdentifier(identifier)\n}\n\nexport type ExternalIdentifierJwksUrlOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'jwks-url'\n identifier: string\n}\n\nexport function isExternalIdentifierJwksUrlOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierJwksUrlOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'oidc-discovery') || isJwksUrlIdentifier(identifier)\n}\n\nexport type ExternalIdentifierOIDFEntityIdOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'entity_id'\n identifier: string\n trustAnchors?: Array<string>\n}\n\nexport function isExternalIdentifierOIDFEntityIdOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierOIDFEntityIdOpts {\n const { identifier } = opts\n return (('method' in opts && opts.method === 'entity_id') || 'trustAnchors' in opts) && isOIDFEntityIdIdentifier(identifier)\n}\n\nexport type ExternalIdentifierX5cOpts = Omit<ExternalIdentifierOptsBase, 'method'> &\n X509CertificateChainValidationOpts & {\n method?: 'x5c'\n identifier: string[]\n verify?: boolean // defaults to true\n verificationTime?: Date\n trustAnchors?: string[]\n }\n\nexport function isExternalIdentifierX5cOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierX5cOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'x5c') || isX5cIdentifier(identifier)\n}\n\nexport type ExternalIdentifierMethod = 'did' | 'jwk' | 'x5c' | 'kid' | 'cose_key' | 'oidc-discovery' | 'jwks-url' | 'oid4vci-issuer' | 'entity_id'\n\nexport type ExternalIdentifierResult = IExternalIdentifierResultBase &\n (\n | ExternalIdentifierDidResult\n | ExternalIdentifierX5cResult\n | ExternalIdentifierJwkResult\n | ExternalIdentifierOIDFEntityIdResult\n | ExternalIdentifierCoseKeyResult\n )\n\nexport interface IExternalIdentifierResultBase {\n method: ExternalIdentifierMethod\n jwks: Array<ExternalJwkInfo>\n}\n\nexport interface ExternalIdentifierJwkResult extends IExternalIdentifierResultBase {\n method: 'jwk'\n jwk: JWK\n x5c?: ExternalIdentifierX5cResult\n}\n\nexport interface ExternalIdentifierCoseKeyResult extends IExternalIdentifierResultBase {\n method: 'cose_key'\n coseKey: ICoseKeyJson\n x5c?: ExternalIdentifierX5cResult\n}\n\nexport interface ExternalIdentifierX5cResult extends IExternalIdentifierResultBase {\n method: 'x5c'\n x5c: string[]\n issuerJWK: JWK\n verificationResult?: X509ValidationResult\n certificates: any[] // for now since our schema generator trips on pkijs Certificate(Json) object //fixme\n}\n\nexport type TrustedAnchor = string\nexport type PublicKeyHex = string\nexport type ErrorMessage = string\n\nexport interface ExternalIdentifierOIDFEntityIdResult extends IExternalIdentifierResultBase {\n method: 'entity_id'\n trustedAnchors: Array<TrustedAnchor>\n errorList?: Record<TrustedAnchor, ErrorMessage>\n jwtPayload?: JwtPayload\n trustEstablished: boolean\n}\n\nexport interface ExternalJwkInfo extends JwkInfo {\n kid?: string\n publicKeyHex: string\n}\n\nexport interface ExternalIdentifierDidResult extends IExternalIdentifierResultBase {\n method: 'did'\n did: string\n didDocument?: DIDDocument\n didJwks?: DidDocumentJwks\n didResolutionResult: Omit<DIDResolutionResult, 'didDocument'> // we already provide that directly\n didParsed: IParsedDID\n}\n\nexport interface JwtPayload {\n iss?: string\n sub?: string\n aud?: string[] | string\n exp?: number\n nbf?: number\n iat?: number\n jti?: string\n [key: string]: unknown\n}\n\nexport type IJwsValidationResult = IValidationResult & {\n jws: any\n}\n","import type { ClientIdScheme } from '@sphereon/ssi-sdk-ext.x509-utils'\nimport type { ICoseKeyJson, JWK } from '@sphereon/ssi-types'\nimport type { DIDDocumentSection, IIdentifier, IKey, TKeyType } from '@veramo/core'\nimport {\n isCoseKeyIdentifier,\n isDidIdentifier,\n isOID4VCIssuerIdentifier,\n isJwkIdentifier,\n isKeyIdentifier,\n isKidIdentifier,\n isX5cIdentifier,\n type JwkInfo,\n} from './common'\n\n/**\n * Use whenever we need to pass in an identifier. We can pass in kids, DIDs, IIdentifier objects and x5chains\n *\n * The functions below can be used to check the type, and they also provide the proper 'runtime' types\n */\nexport type ManagedIdentifierType = IIdentifier /*did*/ | string /*did or kid*/ | string[] /*x5c*/ | JWK | IKey | ICoseKeyJson\n\nexport type ManagedIdentifierOpts = (\n | ManagedIdentifierJwkOpts\n | ManagedIdentifierX5cOpts\n | ManagedIdentifierDidOpts\n | ManagedIdentifierKidOpts\n | ManagedIdentifierKeyOpts\n | ManagedIdentifierCoseKeyOpts\n | ManagedIdentifierOID4VCIssuerOpts\n) &\n ManagedIdentifierOptsBase\n\nexport type ManagedIdentifierOptsBase = {\n method?: ManagedIdentifierMethod // If provided always takes precedences otherwise it will be inferred from the identifier\n identifier: ManagedIdentifierType\n kmsKeyRef?: string // The key reference for the KMS system. If provided this value will be used to determine the appropriate key. Otherwise it will be inferred\n issuer?: string // can be used when a specific issuer needs to end up, for instance when signing JWTs. Will be returned or inferred if not provided\n kid?: string // can be used when a specific kid value needs to be used. For instance when signing JWTs. Will be returned or inferred if not provided\n clientId?: string\n clientIdScheme?: ClientIdScheme | 'did' | string\n}\n\nexport type ManagedIdentifierDidOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'did'\n identifier: IIdentifier | string\n keyType?: TKeyType\n offlineWhenNoDIDRegistered?: boolean\n noVerificationMethodFallback?: boolean\n controllerKey?: boolean\n vmRelationship?: DIDDocumentSection\n}\n\nexport function isManagedIdentifierDidOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierDidOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'did') || isDidIdentifier(identifier)\n}\n\nexport type ManagedIdentifierKidOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'kid'\n identifier: string\n}\n\nexport function isManagedIdentifierKidOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierKidOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'kid') || isKidIdentifier(identifier)\n}\n\nexport type ManagedIdentifierKeyOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'key'\n identifier: IKey\n}\n\nexport function isManagedIdentifierKeyOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierKeyOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'key') || isKeyIdentifier(identifier)\n}\n\nexport type ManagedIdentifierCoseKeyOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'cose_key'\n identifier: ICoseKeyJson\n}\n\nexport function isManagedIdentifierCoseKeyOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierCoseKeyOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'cose_key') || isCoseKeyIdentifier(identifier)\n}\n\nexport type ManagedIdentifierOID4VCIssuerOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'oid4vci-issuer'\n identifier: string\n}\n\nexport function isManagedIdentifierOID4VCIssuerOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierCoseKeyOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'oid4vci-issuer') || isOID4VCIssuerIdentifier(identifier)\n}\n\nexport type ManagedIdentifierJwkOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'jwk'\n identifier: JWK\n}\n\nexport function isManagedIdentifierJwkOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierJwkOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'jwk') || isJwkIdentifier(identifier)\n}\n\nexport type ManagedIdentifierX5cOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'x5c'\n identifier: string[]\n}\n\nexport function isManagedIdentifierX5cOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierX5cOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'x5c') || isX5cIdentifier(identifier)\n}\n\nexport interface ManagedJwkInfo extends JwkInfo {\n kmsKeyRef: string\n}\n\nexport interface IManagedIdentifierResultBase extends ManagedJwkInfo {\n method: ManagedIdentifierMethod\n opts: ManagedIdentifierOpts\n key: IKey\n kid?: string\n issuer?: string\n clientId?: string\n clientIdScheme?: ClientIdScheme | 'did' | string\n identifier: ManagedIdentifierType\n}\n\nexport function isManagedIdentifierCoseKeyResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierCoseKeyResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'cose_key'\n}\n\nexport function isManagedIdentifierDidResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierDidResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'did'\n}\n\nexport function isManagedIdentifierX5cResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierX5cResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'x5c'\n}\n\nexport function isManagedIdentifierJwkResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierJwkResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'jwk'\n}\n\nexport function isManagedIdentifierKidResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierKidResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'kid'\n}\n\nexport function isManagedIdentifierKeyResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierKeyResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'key'\n}\n\nexport interface ManagedIdentifierDidResult extends IManagedIdentifierResultBase {\n method: 'did'\n identifier: IIdentifier\n did: string\n // key: IKey // The key associated with the requested did method sections. Controller key in case of no DID method section requested\n keys: Array<IKey> // If there is more than one key for the VM relationship.\n verificationMethodSection?: DIDDocumentSection\n controllerKeyId?: string\n issuer: string\n kid: string\n}\n\nexport interface ManagedIdentifierJwkResult extends IManagedIdentifierResultBase {\n identifier: JWK\n method: 'jwk'\n}\n\nexport interface ManagedIdentifierKidResult extends IManagedIdentifierResultBase {\n method: 'kid'\n identifier: string\n kid: string\n}\n\nexport interface ManagedIdentifierKeyResult extends IManagedIdentifierResultBase {\n method: 'key'\n identifier: IKey\n}\n\nexport interface ManagedIdentifierCoseKeyResult extends IManagedIdentifierResultBase {\n method: 'cose_key'\n identifier: ICoseKeyJson\n}\n\nexport interface ManagedIdentifierOID4VCIssuerResult extends IManagedIdentifierResultBase {\n method: 'oid4vci-issuer'\n identifier: string\n}\n\nexport interface ManagedIdentifierX5cResult extends IManagedIdentifierResultBase {\n method: 'x5c'\n identifier: string[]\n x5c: string[]\n certificate: any // Certificate(JSON_, but trips schema generator. Probably want to create our own DTO\n}\n\nexport type ManagedIdentifierMethod = 'did' | 'jwk' | 'x5c' | 'kid' | 'key' | 'cose_key' | 'oid4vci-issuer'\n\nexport type ManagedIdentifierResult = IManagedIdentifierResultBase &\n (\n | ManagedIdentifierX5cResult\n | ManagedIdentifierDidResult\n | ManagedIdentifierJwkResult\n | ManagedIdentifierKidResult\n | ManagedIdentifierKeyResult\n | ManagedIdentifierCoseKeyResult\n | ManagedIdentifierOID4VCIssuerResult\n )\n\nexport type ManagedIdentifierOptsOrResult = (ManagedIdentifierResult | ManagedIdentifierOpts) & {\n lazyDisabled?: boolean\n}\n","import type { IAgentContext, IDIDManager, IKeyManager, IPluginMethodMap } from '@veramo/core'\nimport type {\n ExternalIdentifierCoseKeyOpts,\n ExternalIdentifierCoseKeyResult,\n ExternalIdentifierDidOpts,\n ExternalIdentifierDidResult,\n ExternalIdentifierJwkOpts,\n ExternalIdentifierJwkResult,\n ExternalIdentifierOIDFEntityIdOpts,\n ExternalIdentifierOIDFEntityIdResult,\n ExternalIdentifierOpts,\n ExternalIdentifierResult,\n ExternalIdentifierX5cOpts,\n ExternalIdentifierX5cResult,\n} from './externalIdentifierTypes'\nimport type {\n ManagedIdentifierCoseKeyOpts,\n ManagedIdentifierCoseKeyResult,\n ManagedIdentifierDidOpts,\n ManagedIdentifierDidResult,\n ManagedIdentifierJwkOpts,\n ManagedIdentifierJwkResult,\n ManagedIdentifierKeyOpts,\n ManagedIdentifierKeyResult,\n ManagedIdentifierKidOpts,\n ManagedIdentifierKidResult,\n ManagedIdentifierOID4VCIssuerOpts,\n ManagedIdentifierOID4VCIssuerResult,\n ManagedIdentifierOptsOrResult,\n ManagedIdentifierResult,\n ManagedIdentifierX5cOpts,\n ManagedIdentifierX5cResult,\n} from './managedIdentifierTypes'\n\n// Exposing the methods here for any REST implementation\nexport const identifierResolutionContextMethods: Array<string> = [\n 'identifierManagedGet',\n 'identifierManagedGetByDid',\n 'identifierManagedGetByKid',\n 'identifierManagedGetByJwk',\n 'identifierManagedGetByX5c',\n 'identifierManagedGetByKey',\n 'identifierManagedGetByOID4VCIssuer',\n 'identifierManagedGetByCoseKey',\n 'identifierExternalResolve',\n 'identifierExternalResolveByDid',\n 'identifierExternalResolveByX5c',\n 'identifierExternalResolveByJwk',\n 'identifierExternalResolveByCoseKey',\n 'identifierExternalResolveByOIDFEntityId',\n]\n\n/**\n * @public\n */\nexport interface IIdentifierResolution extends IPluginMethodMap {\n /**\n * Main method for managed identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps\n *\n * The end result of all these methods is a common baseline response that allows to use a key from the registered KMS systems. It also provides kid and iss(uer) values that can be used in a JWT/JWS for instance\n * Allows to get a managed identifier result in case identifier options are passed in, but returns the identifier directly in case results are passed in. This means resolution can have happened before, or happens in this method\n *\n * We use the opts or result type almost everywhere, as it allows for just in time resolution whenever this method is called and afterwards we have the result, so resolution doesn't have to hit the DB, or external endpoints.\n * Also use this method in the local agent, not using REST. If case the identifier needs to be resolved, you can always have the above methods using REST\n * @param args\n * @param context\n * @public\n */\n identifierManagedGet(args: ManagedIdentifierOptsOrResult, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierResult>\n\n identifierManagedGetByDid(args: ManagedIdentifierDidOpts, context: IAgentContext<IKeyManager & IDIDManager>): Promise<ManagedIdentifierDidResult>\n\n identifierManagedGetByKid(args: ManagedIdentifierKidOpts, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierKidResult>\n\n identifierManagedGetByJwk(args: ManagedIdentifierJwkOpts, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierJwkResult>\n\n identifierManagedGetByX5c(args: ManagedIdentifierX5cOpts, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierX5cResult>\n\n identifierManagedGetByKey(args: ManagedIdentifierKeyOpts, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierKeyResult>\n\n identifierManagedGetByCoseKey(\n args: ManagedIdentifierCoseKeyOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierCoseKeyResult>\n\n identifierManagedGetByOID4VCIssuer(\n args: ManagedIdentifierOID4VCIssuerOpts,\n context: IAgentContext<any>,\n ): Promise<ManagedIdentifierOID4VCIssuerResult>\n\n // TODO: We can create a custom managed identifier method allowing developers to register a callback function to get their implementation hooked up. Needs more investigation as it would also impact the KMS\n\n /**\n * Main method for external identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps\n * @param args\n * @param context\n * @public\n */\n identifierExternalResolve(args: ExternalIdentifierOpts, context: IAgentContext<any>): Promise<ExternalIdentifierResult>\n\n identifierExternalResolveByDid(args: ExternalIdentifierDidOpts, context: IAgentContext<any>): Promise<ExternalIdentifierDidResult>\n\n identifierExternalResolveByJwk(args: ExternalIdentifierJwkOpts, context: IAgentContext<any>): Promise<ExternalIdentifierJwkResult>\n\n identifierExternalResolveByCoseKey(args: ExternalIdentifierCoseKeyOpts, context: IAgentContext<any>): Promise<ExternalIdentifierCoseKeyResult>\n\n identifierExternalResolveByX5c(args: ExternalIdentifierX5cOpts, context: IAgentContext<any>): Promise<ExternalIdentifierX5cResult>\n\n identifierExternalResolveByOIDFEntityId(\n args: ExternalIdentifierOIDFEntityIdOpts,\n context: IAgentContext<any>,\n ): Promise<ExternalIdentifierOIDFEntityIdResult>\n}\n","import { globalCrypto } from '@sphereon/ssi-sdk-ext.key-utils'\nimport type { IAgentContext, IAgentPlugin, IDIDManager, IKeyManager } from '@veramo/core'\nimport type { ExternalIdentifierOIDFEntityIdOpts, ExternalIdentifierOIDFEntityIdResult } from '../types'\nimport { schema } from '../index'\nimport { resolveExternalIdentifier, ensureManagedIdentifierResult } from '../functions'\nimport type {\n ExternalIdentifierDidOpts,\n ExternalIdentifierDidResult,\n ExternalIdentifierOpts,\n ExternalIdentifierResult,\n ExternalIdentifierX5cOpts,\n ExternalIdentifierX5cResult,\n ExternalIdentifierCoseKeyOpts,\n ExternalIdentifierCoseKeyResult,\n ExternalIdentifierJwkOpts,\n ExternalIdentifierJwkResult,\n IIdentifierResolution,\n ManagedIdentifierCoseKeyOpts,\n ManagedIdentifierCoseKeyResult,\n ManagedIdentifierDidOpts,\n ManagedIdentifierDidResult,\n ManagedIdentifierJwkOpts,\n ManagedIdentifierJwkResult,\n ManagedIdentifierKidOpts,\n ManagedIdentifierKidResult,\n ManagedIdentifierResult,\n ManagedIdentifierX5cOpts,\n ManagedIdentifierX5cResult,\n ManagedIdentifierOID4VCIssuerResult,\n ManagedIdentifierKeyOpts,\n ManagedIdentifierKeyResult,\n ManagedIdentifierOptsOrResult,\n ManagedIdentifierOID4VCIssuerOpts,\n} from '../types'\nimport type { IOIDFClient } from '@sphereon/ssi-sdk.oidf-client'\n\nimport { webcrypto } from 'node:crypto'\n\n/**\n * @public\n */\nexport class IdentifierResolution implements IAgentPlugin {\n readonly _crypto: webcrypto.Crypto\n\n readonly schema = schema.IMnemonicInfoGenerator\n readonly methods: IIdentifierResolution = {\n identifierManagedGet: this.identifierManagedGet.bind(this),\n identifierManagedGetByDid: this.identifierManagedGetByDid.bind(this),\n identifierManagedGetByKid: this.identifierManagedGetByKid.bind(this),\n identifierManagedGetByJwk: this.identifierManagedGetByJwk.bind(this),\n identifierManagedGetByX5c: this.identifierManagedGetByX5c.bind(this),\n identifierManagedGetByKey: this.identifierManagedGetByKey.bind(this),\n identifierManagedGetByCoseKey: this.identifierManagedGetByCoseKey.bind(this),\n identifierManagedGetByOID4VCIssuer: this.identifierManagedGetByOID4VCIssuer.bind(this),\n\n identifierExternalResolve: this.identifierExternalResolve.bind(this),\n identifierExternalResolveByDid: this.identifierExternalResolveByDid.bind(this),\n identifierExternalResolveByX5c: this.identifierExternalResolveByX5c.bind(this),\n identifierExternalResolveByJwk: this.identifierExternalResolveByJwk.bind(this),\n identifierExternalResolveByCoseKey: this.identifierExternalResolveByCoseKey.bind(this),\n identifierExternalResolveByOIDFEntityId: this.identifierExternalResolveByOIDFEntityId.bind(this),\n\n // todo: JWKSet, oidc-discovery, oid4vci-issuer etc. Anything we already can resolve and need keys of\n }\n\n /**\n * TODO: Add a cache, as we are retrieving the same keys/info quite often\n */\n constructor(opts?: { crypto?: webcrypto.Crypto }) {\n this._crypto = globalCrypto(false, opts?.crypto)\n }\n\n /**\n * Main method for managed identifiers. We always go through this method (also the other methods below) as we want to\n * integrate a plugin for anomaly detection. Having a single method helps\n * @param args\n * @param context\n */\n private async identifierManagedGet(\n args: ManagedIdentifierOptsOrResult,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierResult> {\n return await ensureManagedIdentifierResult({ ...args, crypto: this._crypto }, context)\n }\n\n private async identifierManagedGetByDid(\n args: ManagedIdentifierDidOpts,\n context: IAgentContext<IKeyManager & IDIDManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierDidResult> {\n return (await this.identifierManagedGet({ ...args, method: 'did' }, context)) as ManagedIdentifierDidResult\n }\n\n private async identifierManagedGetByKid(\n args: ManagedIdentifierKidOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierKidResult> {\n return (await this.identifierManagedGet({ ...args, method: 'kid' }, context)) as ManagedIdentifierKidResult\n }\n\n private async identifierManagedGetByKey(\n args: ManagedIdentifierKeyOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierKeyResult> {\n return (await this.identifierManagedGet({ ...args, method: 'key' }, context)) as ManagedIdentifierKeyResult\n }\n\n private async identifierManagedGetByCoseKey(\n args: ManagedIdentifierCoseKeyOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierCoseKeyResult> {\n return (await this.identifierManagedGet({ ...args, method: 'cose_key' }, context)) as ManagedIdentifierCoseKeyResult\n }\n\n private async identifierManagedGetByOID4VCIssuer(\n args: ManagedIdentifierOID4VCIssuerOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierOID4VCIssuerResult> {\n return (await this.identifierManagedGet({ ...args, method: 'oid4vci-issuer' }, context)) as ManagedIdentifierOID4VCIssuerResult\n }\n\n private async identifierManagedGetByJwk(\n args: ManagedIdentifierJwkOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierJwkResult> {\n return (await this.identifierManagedGet({ ...args, method: 'jwk' }, context)) as ManagedIdentifierJwkResult\n }\n\n private async identifierManagedGetByX5c(\n args: ManagedIdentifierX5cOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierX5cResult> {\n return (await this.identifierManagedGet({ ...args, method: 'x5c' }, context)) as ManagedIdentifierX5cResult\n }\n\n private async identifierExternalResolve(\n args: ExternalIdentifierOpts,\n context: IAgentContext<IKeyManager | IOIDFClient>,\n ): Promise<ExternalIdentifierResult> {\n return await resolveExternalIdentifier({ ...args, crypto: this._crypto }, context)\n }\n\n private async identifierExternalResolveByDid(args: ExternalIdentifierDidOpts, context: IAgentContext<any>): Promise<ExternalIdentifierDidResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'did' }, context)) as ExternalIdentifierDidResult\n }\n\n private async identifierExternalResolveByX5c(args: ExternalIdentifierX5cOpts, context: IAgentContext<any>): Promise<ExternalIdentifierX5cResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'x5c' }, context)) as ExternalIdentifierX5cResult\n }\n\n private async identifierExternalResolveByCoseKey(\n args: ExternalIdentifierCoseKeyOpts,\n context: IAgentContext<any>,\n ): Promise<ExternalIdentifierCoseKeyResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'cose_key' }, context)) as ExternalIdentifierCoseKeyResult\n }\n\n private async identifierExternalResolveByJwk(args: ExternalIdentifierJwkOpts, context: IAgentContext<any>): Promise<ExternalIdentifierJwkResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'jwk' }, context)) as ExternalIdentifierJwkResult\n }\n\n private async identifierExternalResolveByOIDFEntityId(\n args: ExternalIdentifierOIDFEntityIdOpts,\n context: IAgentContext<any>,\n ): Promise<ExternalIdentifierOIDFEntityIdResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'entity_id' }, context)) as ExternalIdentifierOIDFEntityIdResult\n }\n}\n","import { getFirstKeyWithRelation } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { calculateJwkThumbprint, coseKeyToJwk, globalCrypto, toJwk } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { pemOrDerToX509Certificate } from '@sphereon/ssi-sdk-ext.x509-utils'\nimport { contextHasDidManager, contextHasKeyManager } from '@sphereon/ssi-sdk.agent-config'\nimport type { ICoseKeyJson, JWK } from '@sphereon/ssi-types'\nimport type { IAgentContext, IIdentifier, IKey, IKeyManager } from '@veramo/core'\nimport { CryptoEngine, setEngine } from 'pkijs'\nimport { webcrypto } from 'node:crypto'\nimport type {\n IIdentifierResolution,\n ManagedIdentifierCoseKeyOpts,\n ManagedIdentifierCoseKeyResult,\n ManagedIdentifierDidOpts,\n ManagedIdentifierDidResult,\n ManagedIdentifierOID4VCIssuerOpts,\n ManagedIdentifierOID4VCIssuerResult,\n ManagedIdentifierJwkOpts,\n ManagedIdentifierJwkResult,\n ManagedIdentifierKeyOpts,\n ManagedIdentifierKeyResult,\n ManagedIdentifierKidOpts,\n ManagedIdentifierKidResult,\n ManagedIdentifierOptsOrResult,\n ManagedIdentifierResult,\n ManagedIdentifierX5cOpts,\n ManagedIdentifierX5cResult,\n} from '../types'\n\nimport {\n isManagedIdentifierCoseKeyOpts,\n isManagedIdentifierDidOpts,\n isManagedIdentifierDidResult,\n isManagedIdentifierOID4VCIssuerOpts,\n isManagedIdentifierJwkOpts,\n isManagedIdentifierJwkResult,\n isManagedIdentifierKeyOpts,\n isManagedIdentifierKeyResult,\n isManagedIdentifierKidOpts,\n isManagedIdentifierX5cOpts,\n} from '../types'\n\nexport async function getManagedKidIdentifier(\n opts: ManagedIdentifierKidOpts,\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierKidResult> {\n const method = 'kid'\n let key: IKey | undefined = undefined\n let issuer: string | undefined = undefined\n let kid: string | undefined = undefined\n if (!contextHasKeyManager(context)) {\n return Promise.reject(Error(`Cannot get Key/JWK identifier if KeyManager plugin is not enabled!`))\n } else if (opts.identifier.startsWith('did:')) {\n const did = opts.identifier.split('#')[0]\n const didIdentifier = await getManagedDidIdentifier({ ...opts, method: 'did', identifier: did }, context)\n key = didIdentifier.key\n issuer = didIdentifier.issuer\n kid = opts?.kid ?? (key.meta?.verificationMethod?.id as string) ?? didIdentifier.kid\n }\n if (!key) {\n key = await context.agent.keyManagerGet({ kid: opts.kmsKeyRef ?? opts.identifier })\n }\n const jwk = toJwk(key.publicKeyHex, key.type, { key })\n const jwkThumbprint = (key.meta?.jwkThumbprint as string) ?? calculateJwkThumbprint({ jwk })\n if (!kid) {\n kid = opts.kid ?? (key.meta?.verificationMethod?.id as string) ?? key.kid ?? jwkThumbprint\n }\n if (!issuer) {\n issuer = opts.issuer ?? kid // The different identifiers should set the value. Defaults to the kid\n }\n return {\n method,\n key,\n identifier: opts.identifier,\n jwk,\n jwkThumbprint,\n kid,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n issuer,\n kmsKeyRef: key.kid,\n opts,\n } satisfies ManagedIdentifierKidResult\n}\n\nexport function isManagedIdentifierResult(\n identifier: ManagedIdentifierOptsOrResult & {\n crypto?: webcrypto.Crypto\n },\n): identifier is ManagedIdentifierResult {\n return 'key' in identifier && 'kmsKeyRef' in identifier && 'method' in identifier && 'opts' in identifier && 'jwkThumbprint' in identifier\n}\n\n/**\n * Allows to get a managed identifier result in case identifier options are passed in, but returns the identifier directly in case results are passed in. This means resolution can have happened before, or happens in this method\n * @param identifier\n * @param context\n */\nexport async function ensureManagedIdentifierResult(\n identifier: ManagedIdentifierOptsOrResult & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierResult> {\n const { lazyDisabled = false } = identifier\n return !lazyDisabled && isManagedIdentifierResult(identifier) ? identifier : await getManagedIdentifier(identifier, context)\n}\n\n/**\n * This function is just a convenience function to get a common result. The user already apparently had a key, so could have called the kid version as well\n * @param opts\n * @param _context\n */\nexport async function getManagedKeyIdentifier(opts: ManagedIdentifierKeyOpts, _context?: IAgentContext<any>): Promise<ManagedIdentifierKeyResult> {\n const method = 'key'\n const key: IKey = opts.identifier\n if (opts.kmsKeyRef && opts.kmsKeyRef !== key.kid) {\n return Promise.reject(Error(`Cannot get a managed key object by providing a key and a kmsKeyRef that are different.}`))\n }\n const jwk = toJwk(key.publicKeyHex, key.type, { key })\n const jwkThumbprint = (key.meta?.jwkThumbprint as string) ?? calculateJwkThumbprint({ jwk })\n const kid = opts.kid ?? (key.meta?.verificationMethod?.id as string) ?? jwkThumbprint\n const issuer = opts.issuer ?? kid // The different identifiers should set the value. Defaults to the kid\n return {\n method,\n key,\n identifier: key,\n jwk,\n jwkThumbprint,\n kid,\n issuer,\n kmsKeyRef: key.kid,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierKeyResult\n}\n\n/**\n * This function is just a convenience function to get a common result. The user already apparently had a key, so could have called the kid version as well\n * @param opts\n * @param context\n */\nexport async function getManagedCoseKeyIdentifier(\n opts: ManagedIdentifierCoseKeyOpts,\n context: IAgentContext<any>,\n): Promise<ManagedIdentifierCoseKeyResult> {\n const method = 'cose_key'\n const coseKey: ICoseKeyJson = opts.identifier\n if (!contextHasKeyManager(context)) {\n return Promise.reject(Error(`Cannot get Cose Key identifier if KeyManager plugin is not enabled!`))\n }\n const jwk = coseKeyToJwk(coseKey)\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n const key = await context.agent.keyManagerGet({ kid: opts.kmsKeyRef ?? jwkThumbprint })\n const kid = opts.kid ?? coseKey.kid ?? jwkThumbprint\n const issuer = opts.issuer\n return {\n method,\n key,\n identifier: opts.identifier,\n jwk,\n jwkThumbprint,\n kid,\n issuer,\n kmsKeyRef: key.kid,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierCoseKeyResult\n}\n\nexport async function getManagedDidIdentifier(opts: ManagedIdentifierDidOpts, context: IAgentContext<any>): Promise<ManagedIdentifierDidResult> {\n const method = 'did'\n if (!contextHasDidManager(context)) {\n return Promise.reject(Error(`Cannot get DID identifier if DID Manager plugin is not enabled!`))\n }\n\n let identifier: IIdentifier\n if (typeof opts.identifier === 'string') {\n identifier = await context.agent.didManagerGet({ did: opts.identifier.split('#')[0] })\n } else {\n identifier = opts.identifier\n }\n\n const did = identifier.did\n const keys = identifier?.keys // fixme: We really want to return the vmRelationship keys here actually\n const extendedKey = await getFirstKeyWithRelation(\n {\n ...opts,\n // Make sure we use offline mode if no pref was supplied. We are looking for managed DIDs after all. Could be it is not published yet\n offlineWhenNoDIDRegistered: opts.offlineWhenNoDIDRegistered ?? true,\n identifier,\n vmRelationship: opts.vmRelationship ?? 'verificationMethod',\n },\n context,\n )\n const key = extendedKey\n const controllerKeyId = identifier.controllerKeyId\n const jwk = toJwk(key.publicKeyHex, key.type, { key })\n const jwkThumbprint = key.meta?.jwkThumbprint ?? calculateJwkThumbprint({ jwk })\n let kid = opts.kid ?? extendedKey.meta?.verificationMethod?.id\n if (!kid.startsWith(did)) {\n // Make sure we create a fully qualified kid\n const hash = kid.startsWith('#') ? '' : '#'\n kid = `${did}${hash}${kid}`\n }\n const issuer = opts.issuer ?? did\n return {\n method,\n key,\n did,\n kmsKeyRef: key.kid,\n jwk,\n jwkThumbprint,\n controllerKeyId,\n kid,\n keys,\n issuer,\n identifier,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n }\n}\n\nexport async function getManagedJwkIdentifier(\n opts: ManagedIdentifierJwkOpts,\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierJwkResult> {\n const method = 'jwk'\n const { kid, issuer } = opts\n if (!contextHasKeyManager(context)) {\n return Promise.reject(Error(`Cannot get Key/JWK identifier if KeyManager plugin is not enabled!`))\n }\n const key = await context.agent.keyManagerGet({ kid: opts.kmsKeyRef ?? calculateJwkThumbprint({ jwk: opts.identifier }) })\n const jwk = opts.identifier ?? toJwk(key.publicKeyHex, key.type, { key })\n const jwkThumbprint = (key.meta?.jwkThumbprint as string) ?? calculateJwkThumbprint({ jwk })\n // we explicitly do not set the kid and issuer, meaning it can remain null. Normally you do not provide a kid and issuer with Jwks.\n return {\n method,\n key,\n kmsKeyRef: key.kid,\n identifier: jwk,\n jwk,\n jwkThumbprint,\n kid,\n issuer,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierJwkResult\n}\n\nexport async function getManagedX5cIdentifier(\n opts: ManagedIdentifierX5cOpts & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierX5cResult> {\n const { kid, issuer } = opts\n const method = 'x5c'\n const x5c = opts.identifier\n if (x5c.length === 0) {\n return Promise.reject(`Cannot resolve x5c when an empty x5c is passed in`)\n } else if (!contextHasKeyManager(context)) {\n return Promise.reject(Error(`Cannot get X5c identifier if KeyManager plugin is not enabled!`))\n }\n const cryptoImpl = globalCrypto(false, opts.crypto)\n const certificate = pemOrDerToX509Certificate(x5c[0])\n const cryptoEngine = new CryptoEngine({ name: 'identifier_resolver_managed', crypto: cryptoImpl })\n setEngine(cryptoEngine.name, cryptoEngine)\n const pk = await certificate.getPublicKey(undefined, cryptoEngine)\n const jwk = (await cryptoEngine.subtle.exportKey('jwk', pk)) as JWK\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n const key = await context.agent.keyManagerGet({ kid: opts.kmsKeyRef ?? jwkThumbprint })\n // we explicitly do not set the kid and issuer, meaning it can remain null. Normally you do not provide a kid and issuer with x5c.\n\n return {\n method,\n x5c,\n identifier: x5c,\n certificate,\n jwk,\n jwkThumbprint,\n key,\n kmsKeyRef: key.kid,\n kid,\n issuer,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierX5cResult\n}\n\nexport async function getManagedOID4VCIssuerIdentifier(\n opts: ManagedIdentifierOID4VCIssuerOpts,\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierOID4VCIssuerResult> {\n const { identifier } = opts\n const method = 'oid4vci-issuer'\n // FIXME: We need to eventually determine the JWK based on the issuer. Using a dummy JWK for now\n const jwk = {\n kty: 'RSA',\n kid: 'dummy-jwk-for-vci-issuer-signing',\n use: 'sig',\n n: 'pjdss8ZaDfEH6K6U7GeW2nxDqR4IP049fk1fK0lndimbMMVBdPv_hSpm8T8EtBDxrUdi1OHZfMhUixGaut-3nQ4GG9nM249oxhCtxqqNvEXrmQRGqczyLxuh-fKn9Fg--hS9UpazHpfVAFnB5aCfXoNhPuI8oByyFKMKaOVgHNqP5NBEqabiLftZD3W_lsFCPGuzr4Vp0YS7zS2hDYScC2oOMu4rGU1LcMZf39p3153Cq7bS2Xh6Y-vw5pwzFYZdjQxDn8x8BG3fJ6j8TGLXQsbKH1218_HcUJRvMwdpbUQG5nvA2GXVqLqdwp054Lzk9_B_f1lVrmOKuHjTNHq48w',\n e: 'AQAB',\n d: 'ksDmucdMJXkFGZxiomNHnroOZxe8AmDLDGO1vhs-POa5PZM7mtUPonxwjVmthmpbZzla-kg55OFfO7YcXhg-Hm2OWTKwm73_rLh3JavaHjvBqsVKuorX3V3RYkSro6HyYIzFJ1Ek7sLxbjDRcDOj4ievSX0oN9l-JZhaDYlPlci5uJsoqro_YrE0PRRWVhtGynd-_aWgQv1YzkfZuMD-hJtDi1Im2humOWxA4eZrFs9eG-whXcOvaSwO4sSGbS99ecQZHM2TcdXeAs1PvjVgQ_dKnZlGN3lTWoWfQP55Z7Tgt8Nf1q4ZAKd-NlMe-7iqCFfsnFwXjSiaOa2CRGZn-Q',\n p: '4A5nU4ahEww7B65yuzmGeCUUi8ikWzv1C81pSyUKvKzu8CX41hp9J6oRaLGesKImYiuVQK47FhZ--wwfpRwHvSxtNU9qXb8ewo-BvadyO1eVrIk4tNV543QlSe7pQAoJGkxCia5rfznAE3InKF4JvIlchyqs0RQ8wx7lULqwnn0',\n q: 'ven83GM6SfrmO-TBHbjTk6JhP_3CMsIvmSdo4KrbQNvp4vHO3w1_0zJ3URkmkYGhz2tgPlfd7v1l2I6QkIh4Bumdj6FyFZEBpxjE4MpfdNVcNINvVj87cLyTRmIcaGxmfylY7QErP8GFA-k4UoH_eQmGKGK44TRzYj5hZYGWIC8',\n dp: 'lmmU_AG5SGxBhJqb8wxfNXDPJjf__i92BgJT2Vp4pskBbr5PGoyV0HbfUQVMnw977RONEurkR6O6gxZUeCclGt4kQlGZ-m0_XSWx13v9t9DIbheAtgVJ2mQyVDvK4m7aRYlEceFh0PsX8vYDS5o1txgPwb3oXkPTtrmbAGMUBpE',\n dq: 'mxRTU3QDyR2EnCv0Nl0TCF90oliJGAHR9HJmBe__EjuCBbwHfcT8OG3hWOv8vpzokQPRl5cQt3NckzX3fs6xlJN4Ai2Hh2zduKFVQ2p-AF2p6Yfahscjtq-GY9cB85NxLy2IXCC0PF--Sq9LOrTE9QV988SJy_yUrAjcZ5MmECk',\n qi: 'ldHXIrEmMZVaNwGzDF9WG8sHj2mOZmQpw9yrjLK9hAsmsNr5LTyqWAqJIYZSwPTYWhY4nu2O0EY9G9uYiqewXfCKw_UngrJt8Xwfq1Zruz0YY869zPN4GiE9-9rzdZB33RBw8kIOquY3MK74FMwCihYx_LiU2YTHkaoJ3ncvtvg',\n } as JWK\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n\n const key = {\n kid: 'dummy-key-for-vci-issuer-signing',\n kms: 'local',\n type: 'RSA',\n publicKeyHex: '9a3f75b2e4d8b91128fc6e9a8f6782e5a4f1cba3718e58b5d0a789d6e5f52b3a',\n } as IKey\n\n return {\n method,\n identifier,\n jwk,\n jwkThumbprint,\n key, // FIXME: We need construct a key as soon as we have the external VCI Issuer resolution\n kmsKeyRef: identifier, // FIXME: We need use kmsKeyRef as soon as we have the external VCI Issuer resolution\n issuer: identifier.replace('/.well-known/openid-credential-issuer', ''),\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierOID4VCIssuerResult\n}\n\nexport async function getManagedIdentifier(\n opts: ManagedIdentifierOptsOrResult & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierResult> {\n let resolutionResult: ManagedIdentifierResult\n if (isManagedIdentifierResult(opts)) {\n opts\n }\n if (isManagedIdentifierKidOpts(opts)) {\n resolutionResult = await getManagedKidIdentifier(opts, context)\n } else if (isManagedIdentifierDidOpts(opts)) {\n resolutionResult = await getManagedDidIdentifier(opts, context)\n } else if (isManagedIdentifierJwkOpts(opts)) {\n resolutionResult = await getManagedJwkIdentifier(opts, context)\n } else if (isManagedIdentifierX5cOpts(opts)) {\n resolutionResult = await getManagedX5cIdentifier(opts, context)\n } else if (isManagedIdentifierKeyOpts(opts)) {\n resolutionResult = await getManagedKeyIdentifier(opts, context)\n } else if (isManagedIdentifierCoseKeyOpts(opts)) {\n resolutionResult = await getManagedCoseKeyIdentifier(opts, context)\n } else if (isManagedIdentifierOID4VCIssuerOpts(opts)) {\n resolutionResult = await getManagedOID4VCIssuerIdentifier(opts, context)\n } else {\n return Promise.reject(Error(`Could not determine identifier method. Please provide explicitly`))\n }\n const { key } = resolutionResult\n if (\n (!key && !isManagedIdentifierOID4VCIssuerOpts(opts)) ||\n (isManagedIdentifierDidOpts(opts) && isManagedIdentifierDidResult(resolutionResult) && !resolutionResult.identifier)\n ) {\n console.log(`Cannot find identifier`, opts.identifier)\n return Promise.reject(`Cannot find identifier ${opts.identifier}`)\n }\n return resolutionResult\n}\n\nexport async function managedIdentifierToKeyResult(\n identifier: ManagedIdentifierOptsOrResult,\n context: IAgentContext<IIdentifierResolution & IKeyManager>,\n): Promise<ManagedIdentifierKeyResult> {\n const resolved = await ensureManagedIdentifierResult(identifier, context)\n if (isManagedIdentifierKeyResult(resolved)) {\n return resolved\n }\n\n return {\n ...resolved,\n method: 'key',\n identifier: resolved.key,\n } satisfies ManagedIdentifierKeyResult\n}\n\nexport async function managedIdentifierToJwk(\n identifier: ManagedIdentifierOptsOrResult,\n context: IAgentContext<IIdentifierResolution & IKeyManager>,\n): Promise<ManagedIdentifierJwkResult> {\n const resolved = await ensureManagedIdentifierResult(identifier, context)\n if (isManagedIdentifierJwkResult(resolved)) {\n return resolved\n }\n return {\n ...resolved,\n method: 'jwk',\n identifier: resolved.jwk,\n } satisfies ManagedIdentifierJwkResult\n}\n","import { didDocumentToJwks, getAgentResolver, jwkTtoPublicKeyHex } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { calculateJwkThumbprint, coseKeyToJwk, globalCrypto } from '@sphereon/ssi-sdk-ext.key-utils'\nimport {\n getSubjectDN,\n pemOrDerToX509Certificate,\n PEMToDer,\n validateX509CertificateChain,\n type X509ValidationResult,\n} from '@sphereon/ssi-sdk-ext.x509-utils'\nimport { contextHasPlugin } from '@sphereon/ssi-sdk.agent-config'\nimport { type IParsedDID, type JWK, parseDid } from '@sphereon/ssi-types'\nimport type { IAgentContext, IDIDManager, IResolver } from '@veramo/core'\nimport { isDefined } from '@veramo/utils'\nimport { CryptoEngine, setEngine } from 'pkijs'\nimport type {\n ExternalIdentifierCoseKeyOpts,\n ExternalIdentifierCoseKeyResult,\n ExternalIdentifierDidOpts,\n ExternalIdentifierDidResult,\n ExternalIdentifierJwkOpts,\n ExternalIdentifierJwkResult,\n ExternalIdentifierMethod,\n ExternalIdentifierOpts,\n ExternalIdentifierResult,\n ExternalIdentifierX5cOpts,\n ExternalIdentifierX5cResult,\n ExternalJwkInfo,\n} from '../types'\nimport {\n isExternalIdentifierCoseKeyOpts,\n isExternalIdentifierDidOpts,\n isExternalIdentifierJwkOpts,\n isExternalIdentifierJwksUrlOpts,\n isExternalIdentifierKidOpts,\n isExternalIdentifierOidcDiscoveryOpts,\n isExternalIdentifierOIDFEntityIdOpts,\n isExternalIdentifierX5cOpts,\n} from '../types'\nimport { resolveExternalOIDFEntityIdIdentifier } from '.'\n\nimport { webcrypto } from 'node:crypto'\nexport async function resolveExternalIdentifier(\n opts: ExternalIdentifierOpts & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<any>,\n): Promise<ExternalIdentifierResult> {\n let method: ExternalIdentifierMethod | undefined\n if (isExternalIdentifierDidOpts(opts)) {\n return resolveExternalDidIdentifier(opts, context)\n } else if (isExternalIdentifierX5cOpts(opts)) {\n return resolveExternalX5cIdentifier(opts, context)\n } else if (isExternalIdentifierJwkOpts(opts)) {\n return resolveExternalJwkIdentifier(opts, context)\n } else if (isExternalIdentifierCoseKeyOpts(opts)) {\n return resolveExternalCoseKeyIdentifier(opts, context)\n } else if (isExternalIdentifierOIDFEntityIdOpts(opts)) {\n return resolveExternalOIDFEntityIdIdentifier(opts, context)\n } else if (isExternalIdentifierKidOpts(opts)) {\n method = 'kid'\n } else if (isExternalIdentifierJwksUrlOpts(opts)) {\n method = 'jwks-url'\n } else if (isExternalIdentifierOidcDiscoveryOpts(opts)) {\n method = 'oidc-discovery'\n }\n throw Error(`External resolution method ${method} is not yet implemented`)\n}\n\nexport async function resolveExternalX5cIdentifier(\n opts: ExternalIdentifierX5cOpts & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<IResolver & IDIDManager>,\n): Promise<ExternalIdentifierX5cResult> {\n if (!isExternalIdentifierX5cOpts(opts)) {\n return Promise.reject('External x5c Identifier args need to be provided')\n }\n const verify = opts.verify ?? true\n const x5c = opts.identifier.map((derOrPem) => (derOrPem.includes('CERTIFICATE') ? PEMToDer(derOrPem) : derOrPem))\n if (x5c.length === 0) {\n return Promise.reject('Empty certification chain is not allowed')\n }\n const certificates = x5c.map(pemOrDerToX509Certificate)\n\n let verificationResult: X509ValidationResult | undefined\n let issuerJWK: JWK | undefined\n let jwks: ExternalJwkInfo[] = []\n\n if (verify) {\n // We use the agent plugin if it is available as that is more powerful, but revert to the function otherwise\n if (contextHasPlugin(context, 'verifyCertificateChain')) {\n verificationResult = (await context.agent.verifyCertificateChain({\n chain: opts.identifier,\n trustAnchors: opts.trustAnchors ?? [],\n verificationTime: opts.verificationTime,\n })) as X509ValidationResult // We need to cast, as we know this is the value and we do not want to rely on the x509 plugin perse\n } else {\n verificationResult = await validateX509CertificateChain({\n chain: opts.identifier,\n trustAnchors: opts.trustAnchors ?? [],\n verificationTime: opts.verificationTime,\n opts,\n })\n }\n if (verificationResult.certificateChain) {\n jwks = verificationResult.certificateChain.map((cert) => {\n return {\n jwk: cert.publicKeyJWK,\n kid: cert.subject.dn.DN,\n jwkThumbprint: calculateJwkThumbprint({ jwk: cert.publicKeyJWK }),\n publicKeyHex: jwkTtoPublicKeyHex(cert.publicKeyJWK),\n } satisfies ExternalJwkInfo\n })\n }\n }\n if (!jwks || jwks.length === 0) {\n const cryptoEngine = new CryptoEngine({\n name: 'identifier_resolver_external',\n crypto: globalCrypto(false, opts.crypto),\n })\n setEngine(cryptoEngine.name, cryptoEngine)\n jwks = await Promise.all(\n certificates.map(async (cert) => {\n const pk = await cert.getPublicKey(undefined, cryptoEngine)\n const jwk = (await cryptoEngine.exportKey('jwk', pk)) as JWK\n return {\n jwk,\n kid: getSubjectDN(cert).DN,\n jwkThumbprint: calculateJwkThumbprint({ jwk }),\n publicKeyHex: jwkTtoPublicKeyHex(jwk),\n } satisfies ExternalJwkInfo\n }),\n )\n }\n if (jwks.length === 0) {\n return Promise.reject('Empty certification chain is now allowed')\n }\n if (!issuerJWK) {\n issuerJWK = jwks[0].jwk\n }\n\n return {\n method: 'x5c',\n verificationResult,\n issuerJWK,\n jwks,\n certificates,\n x5c,\n }\n}\n\n/**\n * Resolves a JWK. Normally this is just returning the JWK, but in case the JWK contains a x5c the chain is validated\n * @param opts\n * @param context\n */\nexport async function resolveExternalJwkIdentifier(\n opts: ExternalIdentifierJwkOpts & {\n x5c?: ExternalIdentifierX5cOpts\n },\n context: IAgentContext<any>,\n): Promise<ExternalIdentifierJwkResult> {\n if (!isExternalIdentifierJwkOpts(opts)) {\n return Promise.reject('External JWK Identifier args need to be provided')\n }\n const jwk = opts.identifier\n let x5c: ExternalIdentifierX5cResult | undefined = undefined\n if (jwk.x5c) {\n x5c = await resolveExternalX5cIdentifier({ ...opts.x5c, identifier: jwk.x5c }, context)\n }\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n return {\n method: 'jwk',\n jwk,\n jwks: [\n {\n jwk,\n jwkThumbprint,\n kid: jwk.kid,\n publicKeyHex: jwkTtoPublicKeyHex(jwk),\n },\n ],\n x5c,\n } satisfies ExternalIdentifierJwkResult\n}\n\n/**\n * Resolves a JWK. Normally this is just returning the JWK, but in case the JWK contains a x5c the chain is validated\n * @param opts\n * @param context\n */\nexport async function resolveExternalCoseKeyIdentifier(\n opts: ExternalIdentifierCoseKeyOpts & {\n x5c?: ExternalIdentifierX5cOpts\n },\n context: IAgentContext<any>,\n): Promise<ExternalIdentifierCoseKeyResult> {\n if (!isExternalIdentifierCoseKeyOpts(opts)) {\n return Promise.reject('External Cose Key args need to be provided')\n }\n // TODO: We need to do cbor conversion here as well.\n const coseKey = opts.identifier\n let x5c: ExternalIdentifierX5cResult | undefined = undefined\n if (coseKey.x5chain) {\n x5c = await resolveExternalX5cIdentifier({ ...opts.x5c, identifier: coseKey.x5chain }, context)\n }\n const jwk = coseKeyToJwk(coseKey)\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n return {\n method: 'cose_key',\n coseKey,\n jwks: [\n {\n jwk,\n jwkThumbprint,\n kid: coseKey.kid,\n publicKeyHex: jwkTtoPublicKeyHex(jwk),\n },\n ],\n x5c,\n } satisfies ExternalIdentifierCoseKeyResult\n}\n\nexport async function resolveExternalDidIdentifier(\n opts: ExternalIdentifierDidOpts,\n context: IAgentContext<IResolver & IDIDManager>,\n): Promise<ExternalIdentifierDidResult> {\n if (!isExternalIdentifierDidOpts(opts)) {\n return Promise.reject('External DID Identifier args need to be provided')\n } else if (!contextHasPlugin<IResolver & IDIDManager>(context, 'resolveDid')) {\n return Promise.reject(Error(`Cannot get external DID identifier if DID resolver plugin is not enabled!`))\n }\n const { uniresolverResolution = false, localResolution = true, resolverResolution = true } = opts\n const did = opts.identifier\n let parsed: IParsedDID\n try {\n parsed = parseDid(did)\n } catch (error: unknown) {\n // Error from did resolution spec\n return Promise.reject(error)\n }\n const didParsed = parsed\n const didResolutionResult = await getAgentResolver(context, {\n uniresolverResolution,\n localResolution,\n resolverResolution,\n }).resolve(did)\n const didDocument = didResolutionResult.didDocument ?? undefined\n const didJwks = didDocument ? didDocumentToJwks(didDocument) : undefined\n const jwks = didJwks\n ? Array.from(\n new Set(\n Array.from(\n Object.values(didJwks)\n .filter((jwks) => isDefined(jwks) && jwks.length > 0)\n .flatMap((jwks) => jwks),\n )\n .filter((jwk) => {\n if (!didParsed.fragment) {\n return true\n }\n const fullKid = `${didParsed.did}#${didParsed.fragment}`\n return jwk.kid === fullKid || jwk.kid === didParsed.fragment\n })\n .flatMap((jwk) => {\n return {\n jwk,\n jwkThumbprint: calculateJwkThumbprint({ jwk }),\n kid: jwk.kid,\n publicKeyHex: jwkTtoPublicKeyHex(jwk),\n }\n })\n .map((jwk) => JSON.stringify(jwk)),\n ),\n ).map((jwks) => JSON.parse(jwks))\n : []\n\n if (didResolutionResult?.didDocument) {\n // @ts-ignore // Mandatory on the original object, but we already provide it directly\n delete didResolutionResult['didDocument']\n }\n return {\n method: 'did',\n did,\n jwks,\n didJwks,\n didDocument,\n didResolutionResult,\n didParsed,\n }\n}\n","import type {\n ErrorMessage,\n ExternalIdentifierOIDFEntityIdOpts,\n ExternalIdentifierOIDFEntityIdResult,\n ExternalJwkInfo,\n IJwsValidationResult,\n JwtPayload,\n TrustedAnchor,\n} from '../types'\nimport type { IAgentContext } from '@veramo/core'\nimport type { IOIDFClient } from '@sphereon/ssi-sdk.oidf-client'\nimport { contextHasPlugin } from '@sphereon/ssi-sdk.agent-config'\n\n// @ts-ignore\nimport * as u8a from 'uint8arrays'\nconst { fromString, toString } = u8a\n/**\n * Resolves an OIDF Entity ID against multiple trust anchors to establish trusted relationships\n *\n * @param opts Configuration options containing the identifier to resolve and trust anchors to validate against\n * @param context Agent context that must include the OIDF client plugin and JWT verification capabilities\n *\n * @returns Promise resolving to an ExternalIdentifierOIDFEntityIdResult containing:\n * - trustedAnchors: Record mapping trust anchors to their public key hexes\n * - errorList: Optional record of errors encountered per trust anchor\n * - jwks: Array of JWK information from the trust chain\n * - trustEstablished: Boolean indicating if any trust relationships were established\n *\n * @throws Error if trust anchors are missing or JWT verification plugin is not enabled\n */\nexport async function resolveExternalOIDFEntityIdIdentifier(\n opts: ExternalIdentifierOIDFEntityIdOpts,\n context: IAgentContext<IOIDFClient>,\n): Promise<ExternalIdentifierOIDFEntityIdResult> {\n let { trustAnchors, identifier } = opts\n\n if (!trustAnchors || trustAnchors.length === 0) {\n return Promise.reject(Error('ExternalIdentifierOIDFEntityIdOpts is missing the trustAnchors'))\n }\n\n if (!contextHasPlugin(context, 'jwtVerifyJwsSignature')) {\n return Promise.reject(Error('For OIDFEntityId resolving the agent needs to have the JwtService plugin enabled'))\n }\n\n const trustedAnchors: Set<TrustedAnchor> = new Set<TrustedAnchor>()\n const errorList: Record<TrustedAnchor, ErrorMessage> = {}\n const jwkInfos: Array<ExternalJwkInfo> = []\n\n let payload: JwtPayload | undefined\n for (const trustAnchor of trustAnchors) {\n const resolveResult = await context.agent.resolveTrustChain({\n entityIdentifier: identifier,\n trustAnchors: [trustAnchor],\n })\n\n if (resolveResult.errorMessage || !resolveResult.trustChain) {\n errorList[trustAnchor] = resolveResult.errorMessage ?? 'unspecified'\n } else {\n const trustChain = resolveResult.trustChain\n if (trustChain.length === 0) {\n errorList[trustAnchor] = 'Trust chain is empty'\n continue\n }\n\n const jwt = trustChain[0]\n const jwtVerifyResult: IJwsValidationResult = await context.agent.jwtVerifyJwsSignature({ jws: jwt })\n\n if (jwtVerifyResult.error || jwtVerifyResult.critical) {\n errorList[trustAnchor] = jwtVerifyResult.message\n continue\n }\n\n if (jwtVerifyResult.jws.signatures.length === 0) {\n errorList[trustAnchor] = 'No signature was present in the trust anchor JWS'\n continue\n }\n\n payload = JSON.parse(toString(fromString(jwtVerifyResult.jws.payload, 'base64url')))\n const signature = jwtVerifyResult.jws.signatures[0]\n if (signature.identifier.jwks.length === 0) {\n errorList[trustAnchor] = 'No JWK was present in the trust anchor signature'\n continue\n }\n\n if (jwkInfos.length === 0) {\n // We need the entity JWK only once\n jwkInfos.push(...signature.identifier.jwks)\n }\n trustedAnchors.add(trustAnchor)\n }\n }\n\n return {\n method: 'entity_id',\n trustedAnchors: Array.from(trustedAnchors),\n ...(Object.keys(errorList).length > 0 && { errorList }),\n jwks: jwkInfos,\n jwtPayload: payload,\n trustEstablished: trustedAnchors.size > 0,\n }\n}\n","import type { IIdentifier } from '@veramo/core'\nimport type { ManagedIdentifierDidOpts, ManagedIdentifierOptsOrResult } from '../types'\n\n/**\n * Converts legacy id opts key refs to the new ManagedIdentifierOpts\n * @param opts\n */\nexport function legacyKeyRefsToIdentifierOpts(opts: {\n idOpts?: ManagedIdentifierOptsOrResult\n iss?: string\n keyRef?: string\n didOpts?: any\n}): ManagedIdentifierOptsOrResult {\n if (!opts.idOpts) {\n console.warn(\n `Legacy idOpts being used. Support will be dropped in the future. Consider switching to the idOpts, to have support for DIDs, JWKS, x5c etc. See https://github.com/Sphereon-Opensource/SSI-SDK-crypto-extensions/tree/feature/multi_identifier_support/packages/identifier-resolution`,\n )\n // legacy way\n let kmsKeyRef =\n opts.keyRef ??\n opts.didOpts?.idOpts?.kmsKeyRef ??\n opts.didOpts?.kid ??\n opts.didOpts?.idOpts?.kid ??\n (typeof opts.didOpts?.idOpts?.identifier === 'object' ? (opts.didOpts.idOpts.identifier as IIdentifier).keys[0].kid : undefined)\n if (!kmsKeyRef) {\n throw Error('Key ref is needed for access token signer')\n }\n let identifier = (opts.didOpts?.identifier ?? opts.didOpts?.idOpts?.identifier) as IIdentifier | undefined\n\n return {\n kmsKeyRef: opts.keyRef ?? kmsKeyRef,\n identifier: identifier ?? kmsKeyRef,\n issuer: opts.iss,\n } satisfies ManagedIdentifierDidOpts\n } else {\n const idOpts = opts.idOpts\n if (opts.keyRef && !idOpts.kmsKeyRef) {\n // legacy way\n console.warn(\n `Legacy keyRef being used. Support will be dropped in the future. Consider switching to the idOpts, to have support for DIDs, JWKS, x5c etc. See https://github.com/Sphereon-Opensource/SSI-SDK-crypto-extensions/tree/feature/multi_identifier_support/packages/identifier-resolution`,\n )\n idOpts.kmsKeyRef = opts.keyRef\n }\n if (opts.iss && !idOpts.issuer) {\n // legacy way\n console.warn(\n `Legacy iss being used. Support will be dropped in the future. Consider switching to the idOpts, to have support for DIDs, JWKS, x5c etc. See https://github.com/Sphereon-Opensource/SSI-SDK-crypto-extensions/tree/feature/multi_identifier_support/packages/identifier-resolution`,\n )\n idOpts.issuer = opts.iss\n }\n\n return idOpts\n }\n}\n","/**\n * @internal\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\n/**\n * @public\n */\nexport * from './types'\nexport { IdentifierResolution } from './agent/IdentifierResolution'\nexport * from './functions'\n"],"mappings":"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","names":["isDidIdentifier","identifier","isIIdentifier","startsWith","Array","isArray","isJwkIdentifier","isOidcDiscoveryIdentifier","endsWith","isJwksUrlIdentifier","isKidIdentifier","isOID4VCIssuerIdentifier","isKeyIdentifier","isCoseKeyIdentifier","isOIDFEntityIdIdentifier","isX5cIdentifier","length","isExternalIdentifierDidOpts","opts","identifier","method","isDidIdentifier","isExternalIdentifierKidOpts","isKidIdentifier","isExternalIdentifierJwkOpts","isJwkIdentifier","isExternalIdentifierCoseKeyOpts","isCoseKeyIdentifier","isExternalIdentifierOidcDiscoveryOpts","isOidcDiscoveryIdentifier","isExternalIdentifierJwksUrlOpts","isJwksUrlIdentifier","isExternalIdentifierOIDFEntityIdOpts","isOIDFEntityIdIdentifier","isExternalIdentifierX5cOpts","isX5cIdentifier","isManagedIdentifierDidOpts","opts","identifier","method","isDidIdentifier","isManagedIdentifierKidOpts","isKidIdentifier","isManagedIdentifierKeyOpts","isKeyIdentifier","isManagedIdentifierCoseKeyOpts","isCoseKeyIdentifier","isManagedIdentifierOID4VCIssuerOpts","isOID4VCIssuerIdentifier","isManagedIdentifierJwkOpts","isJwkIdentifier","isManagedIdentifierX5cOpts","isX5cIdentifier","isManagedIdentifierCoseKeyResult","object","isManagedIdentifierDidResult","isManagedIdentifierX5cResult","isManagedIdentifierJwkResult","isManagedIdentifierKidResult","isManagedIdentifierKeyResult","identifierResolutionContextMethods","globalCrypto","getFirstKeyWithRelation","calculateJwkThumbprint","coseKeyToJwk","globalCrypto","toJwk","pemOrDerToX509Certificate","contextHasDidManager","contextHasKeyManager","CryptoEngine","setEngine","getManagedKidIdentifier","opts","context","method","key","undefined","issuer","kid","contextHasKeyManager","Promise","reject","Error","identifier","startsWith","did","split","didIdentifier","getManagedDidIdentifier","meta","verificationMethod","id","agent","keyManagerGet","kmsKeyRef","jwk","toJwk","publicKeyHex","type","jwkThumbprint","calculateJwkThumbprint","clientId","clientIdScheme","isManagedIdentifierResult","ensureManagedIdentifierResult","lazyDisabled","getManagedIdentifier","getManagedKeyIdentifier","_context","getManagedCoseKeyIdentifier","coseKey","coseKeyToJwk","contextHasDidManager","didManagerGet","keys","extendedKey","getFirstKeyWithRelation","offlineWhenNoDIDRegistered","vmRelationship","controllerKeyId","hash","getManagedJwkIdentifier","getManagedX5cIdentifier","x5c","length","cryptoImpl","globalCrypto","crypto","certificate","pemOrDerToX509Certificate","cryptoEngine","CryptoEngine","name","setEngine","pk","getPublicKey","subtle","exportKey","getManagedOID4VCIssuerIdentifier","kty","use","n","e","d","p","q","dp","dq","qi","kms","replace","resolutionResult","isManagedIdentifierKidOpts","isManagedIdentifierDidOpts","isManagedIdentifierJwkOpts","isManagedIdentifierX5cOpts","isManagedIdentifierKeyOpts","isManagedIdentifierCoseKeyOpts","isManagedIdentifierOID4VCIssuerOpts","isManagedIdentifierDidResult","console","log","managedIdentifierToKeyResult","resolved","isManagedIdentifierKeyResult","managedIdentifierToJwk","isManagedIdentifierJwkResult","didDocumentToJwks","getAgentResolver","jwkTtoPublicKeyHex","calculateJwkThumbprint","coseKeyToJwk","globalCrypto","getSubjectDN","pemOrDerToX509Certificate","PEMToDer","validateX509CertificateChain","contextHasPlugin","parseDid","isDefined","CryptoEngine","setEngine","resolveExternalIdentifier","opts","context","method","isExternalIdentifierDidOpts","resolveExternalDidIdentifier","isExternalIdentifierX5cOpts","resolveExternalX5cIdentifier","isExternalIdentifierJwkOpts","resolveExternalJwkIdentifier","isExternalIdentifierCoseKeyOpts","resolveExternalCoseKeyIdentifier","isExternalIdentifierOIDFEntityIdOpts","resolveExternalOIDFEntityIdIdentifier","isExternalIdentifierKidOpts","isExternalIdentifierJwksUrlOpts","isExternalIdentifierOidcDiscoveryOpts","Error","Promise","reject","verify","x5c","identifier","map","derOrPem","includes","PEMToDer","length","certificates","pemOrDerToX509Certificate","verificationResult","issuerJWK","jwks","contextHasPlugin","agent","verifyCertificateChain","chain","trustAnchors","verificationTime","validateX509CertificateChain","certificateChain","cert","jwk","publicKeyJWK","kid","subject","dn","DN","jwkThumbprint","calculateJwkThumbprint","publicKeyHex","jwkTtoPublicKeyHex","cryptoEngine","CryptoEngine","name","crypto","globalCrypto","setEngine","all","pk","getPublicKey","undefined","exportKey","getSubjectDN","coseKey","x5chain","coseKeyToJwk","uniresolverResolution","localResolution","resolverResolution","did","parsed","parseDid","error","didParsed","didResolutionResult","getAgentResolver","resolve","didDocument","didJwks","didDocumentToJwks","Array","from","Set","Object","values","filter","isDefined","flatMap","fragment","fullKid","JSON","stringify","parse","contextHasPlugin","u8a","fromString","toString","u8a","resolveExternalOIDFEntityIdIdentifier","opts","context","trustAnchors","identifier","length","Promise","reject","Error","contextHasPlugin","trustedAnchors","Set","errorList","jwkInfos","payload","trustAnchor","resolveResult","agent","resolveTrustChain","entityIdentifier","errorMessage","trustChain","jwt","jwtVerifyResult","jwtVerifyJwsSignature","jws","error","critical","message","signatures","JSON","parse","signature","jwks","push","add","method","Array","from","Object","keys","jwtPayload","trustEstablished","size","legacyKeyRefsToIdentifierOpts","opts","idOpts","console","warn","kmsKeyRef","keyRef","didOpts","kid","identifier","keys","undefined","Error","issuer","iss","IdentifierResolution","_crypto","schema","IMnemonicInfoGenerator","methods","identifierManagedGet","bind","identifierManagedGetByDid","identifierManagedGetByKid","identifierManagedGetByJwk","identifierManagedGetByX5c","identifierManagedGetByKey","identifierManagedGetByCoseKey","identifierManagedGetByOID4VCIssuer","identifierExternalResolve","identifierExternalResolveByDid","identifierExternalResolveByX5c","identifierExternalResolveByJwk","identifierExternalResolveByCoseKey","identifierExternalResolveByOIDFEntityId","opts","globalCrypto","crypto","args","context","ensureManagedIdentifierResult","method","resolveExternalIdentifier","schema","require"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/types/common.ts","../src/types/externalIdentifierTypes.ts","../src/types/managedIdentifierTypes.ts","../src/types/IIdentifierResolution.ts","../src/agent/IdentifierResolution.ts","../src/functions/managedIdentifierFunctions.ts","../src/functions/externalIdentifierFunctions.ts","../src/functions/externalOIDFIdentifier.ts","../src/functions/LegacySupport.ts","../src/index.ts"],"sourcesContent":["{\n \"IIdentifierResolution\": {\n \"components\": {\n \"schemas\": {\n \"ExternalIdentifierOpts\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cOpts\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"verify\": {\n \"type\": \"boolean\"\n },\n \"verificationTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"allowNoTrustAnchorsFound\": {\n \"type\": \"boolean\"\n },\n \"trustRootWhenNoAnchors\": {\n \"type\": \"boolean\"\n },\n \"allowSingleNoCAChainElement\": {\n \"type\": \"boolean\"\n },\n \"blindlyTrustedAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"disallowReversedChain\": {\n \"type\": \"boolean\"\n },\n \"client\": {\n \"type\": \"object\",\n \"properties\": {\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientIdScheme\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"localResolution\": {\n \"type\": \"boolean\"\n },\n \"uniresolverResolution\": {\n \"type\": \"boolean\"\n },\n \"resolverResolution\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"entity_id\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"identifier\"\n ]\n }\n ]\n },\n \"ExternalIdentifierType\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n ],\n \"description\": \"Use whenever we need to resolve an external identifier. We can pass in kids, DIDs, and x5chains\\n\\nThe functions below can be used to check the type, and they also provide the proper runtime types\"\n },\n \"JWK\": {\n \"type\": \"object\",\n \"properties\": {\n \"kty\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JwkKeyType\"\n },\n {\n \"$ref\": \"#/components/schemas/JwkKeyTypeString\"\n }\n ]\n },\n \"crv\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JoseCurve\"\n },\n {\n \"$ref\": \"#/components/schemas/JoseCurveString\"\n }\n ]\n },\n \"alg\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JoseSignatureAlgorithm\"\n },\n {\n \"$ref\": \"#/components/schemas/JoseSignatureAlgorithmString\"\n }\n ]\n },\n \"x\": {\n \"type\": \"string\"\n },\n \"y\": {\n \"type\": \"string\"\n },\n \"e\": {\n \"type\": \"string\"\n },\n \"n\": {\n \"type\": \"string\"\n },\n \"d\": {\n \"type\": \"string\"\n },\n \"dp\": {\n \"type\": \"string\"\n },\n \"dq\": {\n \"type\": \"string\"\n },\n \"ext\": {\n \"type\": \"boolean\"\n },\n \"k\": {\n \"type\": \"string\"\n },\n \"key_ops\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/JoseKeyOperation\"\n },\n {\n \"$ref\": \"#/components/schemas/JoseKeyOperationString\"\n }\n ]\n }\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"oth\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"d\": {\n \"type\": \"string\"\n },\n \"r\": {\n \"type\": \"string\"\n },\n \"t\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": false\n }\n },\n \"p\": {\n \"type\": \"string\"\n },\n \"q\": {\n \"type\": \"string\"\n },\n \"qi\": {\n \"type\": \"string\"\n },\n \"use\": {\n \"type\": \"string\"\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n },\n \"description\": \"JWK \\\"x5c\\\" (X.509 Certificate Chain) Parameter.\"\n },\n \"x5t\": {\n \"type\": \"string\",\n \"description\": \"JWK \\\"x5t\\\" (X.509 Certificate SHA-1 Thumbprint) Parameter.\"\n },\n \"x5t#S256\": {\n \"type\": \"string\",\n \"description\": \"\\\"x5t#S256\\\" (X.509 Certificate SHA-256 Thumbprint) Parameter.\"\n },\n \"x5u\": {\n \"type\": \"string\",\n \"description\": \"JWK \\\"x5u\\\" (X.509 URL) Parameter.\"\n },\n \"iv\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kty\"\n ]\n },\n \"JwkKeyType\": {\n \"type\": \"string\",\n \"enum\": [\n \"EC\",\n \"RSA\",\n \"oct\",\n \"OKP\"\n ]\n },\n \"JwkKeyTypeString\": {\n \"type\": \"string\",\n \"enum\": [\n \"EC\",\n \"RSA\",\n \"oct\",\n \"OKP\"\n ]\n },\n \"JoseCurve\": {\n \"type\": \"string\",\n \"enum\": [\n \"P-256\",\n \"P-384\",\n \"P-521\",\n \"X25519\",\n \"X448\",\n \"EdDSA\",\n \"Ed25519\",\n \"Ed448\",\n \"secp256k1\"\n ]\n },\n \"JoseCurveString\": {\n \"type\": \"string\",\n \"enum\": [\n \"P-256\",\n \"P-384\",\n \"P-521\",\n \"X25519\",\n \"X448\",\n \"EdDSA\",\n \"Ed25519\",\n \"Ed448\",\n \"secp256k1\"\n ]\n },\n \"JoseSignatureAlgorithm\": {\n \"type\": \"string\",\n \"enum\": [\n \"RS256\",\n \"RS384\",\n \"RS512\",\n \"ES256\",\n \"ES256K\",\n \"ES384\",\n \"ES512\",\n \"EdDSA\",\n \"HS256\",\n \"HS384\",\n \"HS512\",\n \"PS256\",\n \"PS384\",\n \"PS512\",\n \"none\"\n ]\n },\n \"JoseSignatureAlgorithmString\": {\n \"type\": \"string\",\n \"enum\": [\n \"RS256\",\n \"RS384\",\n \"RS512\",\n \"ES256\",\n \"ES256K\",\n \"ES384\",\n \"ES512\",\n \"EdDSA\",\n \"HS256\",\n \"HS384\",\n \"HS512\",\n \"PS256\",\n \"PS384\",\n \"PS512\",\n \"none\"\n ]\n },\n \"JoseKeyOperation\": {\n \"type\": \"string\",\n \"enum\": [\n \"sign\",\n \"verify\",\n \"encrypt\",\n \"decrypt\",\n \"wrapKey\",\n \"unwrapKey\",\n \"deriveKey\",\n \"deriveBits\"\n ]\n },\n \"JoseKeyOperationString\": {\n \"type\": \"string\",\n \"enum\": [\n \"sign\",\n \"verify\",\n \"encrypt\",\n \"decrypt\",\n \"wrapKey\",\n \"unwrapKey\",\n \"deriveKey\",\n \"deriveBits\"\n ]\n },\n \"ExternalIdentifierX5cOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"verify\": {\n \"type\": \"boolean\"\n },\n \"verificationTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"allowNoTrustAnchorsFound\": {\n \"type\": \"boolean\"\n },\n \"trustRootWhenNoAnchors\": {\n \"type\": \"boolean\"\n },\n \"allowSingleNoCAChainElement\": {\n \"type\": \"boolean\"\n },\n \"blindlyTrustedAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"disallowReversedChain\": {\n \"type\": \"boolean\"\n },\n \"client\": {\n \"type\": \"object\",\n \"properties\": {\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientIdScheme\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ClientIdScheme\": {\n \"type\": \"string\",\n \"enum\": [\n \"x509_san_dns\",\n \"x509_san_uri\"\n ]\n },\n \"DIDDocumentSection\": {\n \"type\": \"string\",\n \"enum\": [\n \"verificationMethod\",\n \"publicKey\",\n \"service\",\n \"authentication\",\n \"assertionMethod\",\n \"keyAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ],\n \"description\": \"Refers to a section of a DID document. Either the list of verification methods or services or one of the verification relationships.\\n\\nSee {@link https://www.w3.org/TR/did-core/#verification-relationships | verification relationships }\"\n },\n \"ExternalIdentifierResult\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"didDocument\": {\n \"$ref\": \"#/components/schemas/DIDDocument\"\n },\n \"didJwks\": {\n \"$ref\": \"#/components/schemas/DidDocumentJwks\"\n },\n \"didResolutionResult\": {\n \"$ref\": \"#/components/schemas/Omit<DIDResolutionResult,\\\"didDocument\\\">\"\n },\n \"didParsed\": {\n \"$ref\": \"#/components/schemas/IParsedDID\"\n }\n },\n \"required\": [\n \"did\",\n \"didParsed\",\n \"didResolutionResult\",\n \"jwks\",\n \"method\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"issuerJWK\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"verificationResult\": {\n \"$ref\": \"#/components/schemas/X509ValidationResult\"\n },\n \"certificates\": {\n \"type\": \"array\",\n \"items\": {}\n }\n },\n \"required\": [\n \"certificates\",\n \"issuerJWK\",\n \"jwks\",\n \"method\",\n \"x5c\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"required\": [\n \"jwk\",\n \"jwks\",\n \"method\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"trustedAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/TrustedAnchor\"\n }\n },\n \"errorList\": {\n \"$ref\": \"#/components/schemas/Record<TrustedAnchor,ErrorMessage>\"\n },\n \"jwtPayload\": {\n \"$ref\": \"#/components/schemas/JwtPayload\"\n },\n \"trustEstablished\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"jwks\",\n \"method\",\n \"trustEstablished\",\n \"trustedAnchors\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierMethod\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"coseKey\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"required\": [\n \"coseKey\",\n \"jwks\",\n \"method\"\n ]\n }\n ]\n },\n \"ExternalIdentifierMethod\": {\n \"type\": \"string\",\n \"enum\": [\n \"did\",\n \"jwk\",\n \"x5c\",\n \"kid\",\n \"cose_key\",\n \"oidc-discovery\",\n \"jwks-url\",\n \"oid4vci-issuer\",\n \"entity_id\"\n ]\n },\n \"ExternalJwkInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"jwk\",\n \"jwkThumbprint\",\n \"publicKeyHex\"\n ],\n \"additionalProperties\": false\n },\n \"DIDDocument\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"authentication\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"assertionMethod\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"keyAgreement\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"capabilityInvocation\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"capabilityDelegation\": {\n \"type\": \"array\",\n \"items\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n ]\n }\n },\n \"@context\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"https://www.w3.org/ns/did/v1\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"controller\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"verificationMethod\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n },\n \"service\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/Service\"\n }\n },\n \"publicKey\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n },\n \"deprecated\": true\n }\n },\n \"required\": [\n \"id\"\n ],\n \"description\": \"Represents a DID document.\"\n },\n \"VerificationMethod\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"controller\": {\n \"type\": \"string\"\n },\n \"publicKeyBase58\": {\n \"type\": \"string\"\n },\n \"publicKeyBase64\": {\n \"type\": \"string\"\n },\n \"publicKeyJwk\": {\n \"$ref\": \"#/components/schemas/JsonWebKey\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\"\n },\n \"publicKeyMultibase\": {\n \"type\": \"string\"\n },\n \"blockchainAccountId\": {\n \"type\": \"string\"\n },\n \"ethereumAddress\": {\n \"type\": \"string\"\n },\n \"conditionOr\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n },\n \"conditionAnd\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n },\n \"threshold\": {\n \"type\": \"number\"\n },\n \"conditionThreshold\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n }\n },\n \"conditionWeightedThreshold\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ConditionWeightedThreshold\"\n }\n },\n \"conditionDelegated\": {\n \"type\": \"string\"\n },\n \"relationshipParent\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"relationshipChild\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"relationshipSibling\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"id\",\n \"type\",\n \"controller\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Represents the properties of a Verification Method listed in a DID document.\\n\\nThis data type includes public key representations that are no longer present in the spec but are still used by several DID methods / resolvers and kept for backward compatibility.\"\n },\n \"JsonWebKey\": {\n \"type\": \"object\",\n \"properties\": {\n \"alg\": {\n \"type\": \"string\"\n },\n \"crv\": {\n \"type\": \"string\"\n },\n \"e\": {\n \"type\": \"string\"\n },\n \"ext\": {\n \"type\": \"boolean\"\n },\n \"key_ops\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"kty\": {\n \"type\": \"string\"\n },\n \"n\": {\n \"type\": \"string\"\n },\n \"use\": {\n \"type\": \"string\"\n },\n \"x\": {\n \"type\": \"string\"\n },\n \"y\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"kty\"\n ],\n \"description\": \"Encapsulates a JSON web key type that includes only the public properties that can be used in DID documents.\\n\\nThe private properties are intentionally omitted to discourage the use (and accidental disclosure) of private keys in DID documents.\"\n },\n \"ConditionWeightedThreshold\": {\n \"type\": \"object\",\n \"properties\": {\n \"condition\": {\n \"$ref\": \"#/components/schemas/VerificationMethod\"\n },\n \"weight\": {\n \"type\": \"number\"\n }\n },\n \"required\": [\n \"condition\",\n \"weight\"\n ],\n \"additionalProperties\": false\n },\n \"Service\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"type\": \"string\"\n },\n \"serviceEndpoint\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ServiceEndpoint\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ServiceEndpoint\"\n }\n }\n ]\n }\n },\n \"required\": [\n \"id\",\n \"type\",\n \"serviceEndpoint\"\n ],\n \"description\": \"Represents a Service entry in a {@link https://www.w3.org/TR/did-core/#did-document-properties | DID document } .\"\n },\n \"ServiceEndpoint\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/Record<string,any>\"\n }\n ],\n \"description\": \"Represents an endpoint of a Service entry in a DID document.\"\n },\n \"Record<string,any>\": {\n \"type\": \"object\"\n },\n \"DidDocumentJwks\": {\n \"$ref\": \"#/components/schemas/Record<Exclude<DIDDocumentSection,(\\\"publicKey\\\"|\\\"service\\\")>,def-interface-.ts-36172-36897-.ts-0-63936[]>\"\n },\n \"Record<Exclude<DIDDocumentSection,(\\\"publicKey\\\"|\\\"service\\\")>,def-interface-.ts-36172-36897-.ts-0-63936[]>\": {\n \"type\": \"object\",\n \"properties\": {\n \"verificationMethod\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"authentication\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"assertionMethod\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"keyAgreement\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"capabilityInvocation\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"capabilityDelegation\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n }\n },\n \"required\": [\n \"verificationMethod\",\n \"authentication\",\n \"assertionMethod\",\n \"keyAgreement\",\n \"capabilityInvocation\",\n \"capabilityDelegation\"\n ],\n \"additionalProperties\": false\n },\n \"Omit<DIDResolutionResult,\\\"didDocument\\\">\": {\n \"$ref\": \"#/components/schemas/Pick<DIDResolutionResult,Exclude<(\\\"@context\\\"|\\\"didResolutionMetadata\\\"|\\\"didDocument\\\"|\\\"didDocumentMetadata\\\"),\\\"didDocument\\\">>\"\n },\n \"Pick<DIDResolutionResult,Exclude<(\\\"@context\\\"|\\\"didResolutionMetadata\\\"|\\\"didDocument\\\"|\\\"didDocumentMetadata\\\"),\\\"didDocument\\\">>\": {\n \"type\": \"object\",\n \"properties\": {\n \"@context\": {\n \"anyOf\": [\n {\n \"type\": \"string\",\n \"const\": \"https://w3id.org/did-resolution/v1\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n ]\n },\n \"didResolutionMetadata\": {\n \"$ref\": \"#/components/schemas/DIDResolutionMetadata\"\n },\n \"didDocumentMetadata\": {\n \"$ref\": \"#/components/schemas/DIDDocumentMetadata\"\n }\n },\n \"required\": [\n \"didResolutionMetadata\",\n \"didDocumentMetadata\"\n ],\n \"additionalProperties\": false\n },\n \"DIDResolutionMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"contentType\": {\n \"type\": \"string\"\n },\n \"error\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Encapsulates the resolution metadata resulting from a {@link Resolvable.resolve } operation.\"\n },\n \"DIDDocumentMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"created\": {\n \"type\": \"string\"\n },\n \"updated\": {\n \"type\": \"string\"\n },\n \"deactivated\": {\n \"type\": \"boolean\"\n },\n \"versionId\": {\n \"type\": \"string\"\n },\n \"nextUpdate\": {\n \"type\": \"string\"\n },\n \"nextVersionId\": {\n \"type\": \"string\"\n },\n \"equivalentId\": {\n \"type\": \"string\"\n },\n \"canonicalId\": {\n \"type\": \"string\"\n }\n },\n \"description\": \"Represents metadata about the DID document resulting from a {@link Resolvable.resolve } operation.\"\n },\n \"IParsedDID\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"didUrl\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\"\n },\n \"id\": {\n \"type\": \"string\"\n },\n \"path\": {\n \"type\": \"string\"\n },\n \"fragment\": {\n \"type\": \"string\"\n },\n \"query\": {\n \"type\": \"string\"\n },\n \"params\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"did\",\n \"didUrl\",\n \"method\",\n \"id\"\n ],\n \"additionalProperties\": false\n },\n \"X509ValidationResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"error\": {\n \"type\": \"boolean\"\n },\n \"critical\": {\n \"type\": \"boolean\"\n },\n \"message\": {\n \"type\": \"string\"\n },\n \"detailMessage\": {\n \"type\": \"string\"\n },\n \"verificationTime\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"certificateChain\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/CertificateInfo\"\n }\n },\n \"trustAnchor\": {\n \"$ref\": \"#/components/schemas/CertificateInfo\"\n },\n \"client\": {\n \"type\": \"object\",\n \"properties\": {\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n }\n },\n \"required\": [\n \"clientId\",\n \"clientIdScheme\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"error\",\n \"critical\",\n \"message\",\n \"verificationTime\"\n ],\n \"additionalProperties\": false\n },\n \"CertificateInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"certificate\": {},\n \"notBefore\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"notAfter\": {\n \"type\": \"string\",\n \"format\": \"date-time\"\n },\n \"publicKeyJWK\": {},\n \"issuer\": {\n \"type\": \"object\",\n \"properties\": {\n \"dn\": {\n \"$ref\": \"#/components/schemas/DNInfo\"\n }\n },\n \"required\": [\n \"dn\"\n ],\n \"additionalProperties\": false\n },\n \"subject\": {\n \"type\": \"object\",\n \"properties\": {\n \"dn\": {\n \"$ref\": \"#/components/schemas/DNInfo\"\n },\n \"subjectAlternativeNames\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/SubjectAlternativeName\"\n }\n }\n },\n \"required\": [\n \"dn\",\n \"subjectAlternativeNames\"\n ],\n \"additionalProperties\": false\n }\n },\n \"required\": [\n \"notBefore\",\n \"notAfter\",\n \"issuer\",\n \"subject\"\n ],\n \"additionalProperties\": false\n },\n \"DNInfo\": {\n \"type\": \"object\",\n \"properties\": {\n \"DN\": {\n \"type\": \"string\"\n },\n \"attributes\": {\n \"$ref\": \"#/components/schemas/Record<string,string>\"\n }\n },\n \"required\": [\n \"DN\",\n \"attributes\"\n ],\n \"additionalProperties\": false\n },\n \"Record<string,string>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"type\": \"string\"\n }\n },\n \"SubjectAlternativeName\": {\n \"type\": \"object\",\n \"properties\": {\n \"value\": {\n \"type\": \"string\"\n },\n \"type\": {\n \"$ref\": \"#/components/schemas/SubjectAlternativeGeneralName\"\n }\n },\n \"required\": [\n \"value\",\n \"type\"\n ],\n \"additionalProperties\": false\n },\n \"SubjectAlternativeGeneralName\": {\n \"type\": \"number\",\n \"enum\": [\n 1,\n 2,\n 6,\n 7\n ],\n \"description\": \"otherName [0] OtherName, rfc822Name [1] IA5String, dNSName [2] IA5String, x400Address [3] ORAddress, directoryName [4] Name, ediPartyName [5] EDIPartyName, uniformResourceIdentifier [6] IA5String, iPAddress [7] OCTET STRING, registeredID [8] OBJECT IDENTIFIER }\"\n },\n \"ExternalIdentifierX5cResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"issuerJWK\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"verificationResult\": {\n \"$ref\": \"#/components/schemas/X509ValidationResult\"\n },\n \"certificates\": {\n \"type\": \"array\",\n \"items\": {}\n }\n },\n \"required\": [\n \"certificates\",\n \"issuerJWK\",\n \"jwks\",\n \"method\",\n \"x5c\"\n ],\n \"additionalProperties\": false\n },\n \"TrustedAnchor\": {\n \"type\": \"string\"\n },\n \"Record<TrustedAnchor,ErrorMessage>\": {\n \"type\": \"object\",\n \"additionalProperties\": {\n \"$ref\": \"#/components/schemas/ErrorMessage\"\n }\n },\n \"ErrorMessage\": {\n \"type\": \"string\"\n },\n \"JwtPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"iss\": {\n \"type\": \"string\"\n },\n \"sub\": {\n \"type\": \"string\"\n },\n \"aud\": {\n \"anyOf\": [\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"exp\": {\n \"type\": \"number\"\n },\n \"nbf\": {\n \"type\": \"number\"\n },\n \"iat\": {\n \"type\": \"number\"\n },\n \"jti\": {\n \"type\": \"string\"\n }\n },\n \"additionalProperties\": {}\n },\n \"ICoseKeyJson\": {\n \"type\": \"object\",\n \"properties\": {\n \"kty\": {\n \"$ref\": \"#/components/schemas/ICoseKeyType\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"alg\": {\n \"$ref\": \"#/components/schemas/ICoseSignatureAlgorithm\"\n },\n \"key_ops\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ICoseKeyOperation\"\n }\n },\n \"baseIV\": {\n \"type\": \"string\"\n },\n \"crv\": {\n \"$ref\": \"#/components/schemas/ICoseCurve\"\n },\n \"x\": {\n \"type\": \"string\"\n },\n \"y\": {\n \"type\": \"string\"\n },\n \"d\": {\n \"type\": \"string\"\n },\n \"x5chain\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"kty\"\n ],\n \"additionalProperties\": {},\n \"description\": \"See our mdl-mdoc and crypto library for more information https://github.com/Sphereon-Opensource/mdoc-cbor-crypto-multiplatform\\n\\nConversion functions are available in above library. Conversion functions are also available for TS in our\"\n },\n \"ICoseKeyType\": {\n \"type\": \"number\",\n \"enum\": [\n 1,\n 2,\n 3,\n 4,\n 0\n ]\n },\n \"ICoseSignatureAlgorithm\": {\n \"type\": \"number\",\n \"enum\": [\n -7,\n -47,\n -35,\n -36,\n -8,\n 4,\n 5,\n 6,\n 7,\n -37,\n -38,\n -39\n ]\n },\n \"ICoseKeyOperation\": {\n \"type\": \"number\",\n \"enum\": [\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10\n ]\n },\n \"ICoseCurve\": {\n \"type\": \"number\",\n \"enum\": [\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n -1\n ]\n },\n \"ExternalIdentifierCoseKeyOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ExternalIdentifierCoseKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"coseKey\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"required\": [\n \"coseKey\",\n \"jwks\",\n \"method\"\n ],\n \"additionalProperties\": false\n },\n \"ExternalIdentifierDidOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"localResolution\": {\n \"type\": \"boolean\"\n },\n \"uniresolverResolution\": {\n \"type\": \"boolean\"\n },\n \"resolverResolution\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ExternalIdentifierDidResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"didDocument\": {\n \"$ref\": \"#/components/schemas/DIDDocument\"\n },\n \"didJwks\": {\n \"$ref\": \"#/components/schemas/DidDocumentJwks\"\n },\n \"didResolutionResult\": {\n \"$ref\": \"#/components/schemas/Omit<DIDResolutionResult,\\\"didDocument\\\">\"\n },\n \"didParsed\": {\n \"$ref\": \"#/components/schemas/IParsedDID\"\n }\n },\n \"required\": [\n \"did\",\n \"didParsed\",\n \"didResolutionResult\",\n \"jwks\",\n \"method\"\n ],\n \"additionalProperties\": false\n },\n \"ExternalIdentifierJwkOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cOpts\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ExternalIdentifierJwkResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"x5c\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"required\": [\n \"jwk\",\n \"jwks\",\n \"method\"\n ],\n \"additionalProperties\": false\n },\n \"ExternalIdentifierOIDFEntityIdOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"entity_id\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierType\"\n },\n \"trustAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ExternalIdentifierOIDFEntityIdResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"entity_id\"\n },\n \"jwks\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/ExternalJwkInfo\"\n }\n },\n \"trustedAnchors\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/TrustedAnchor\"\n }\n },\n \"errorList\": {\n \"$ref\": \"#/components/schemas/Record<TrustedAnchor,ErrorMessage>\"\n },\n \"jwtPayload\": {\n \"$ref\": \"#/components/schemas/JwtPayload\"\n },\n \"trustEstablished\": {\n \"type\": \"boolean\"\n }\n },\n \"required\": [\n \"jwks\",\n \"method\",\n \"trustEstablished\",\n \"trustedAnchors\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierOptsOrResult\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\",\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\",\n \"x5c\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IKey\"\n }\n },\n \"verificationMethodSection\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"did\",\n \"identifier\",\n \"issuer\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"keys\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"keyType\": {\n \"$ref\": \"#/components/schemas/TKeyType\"\n },\n \"offlineWhenNoDIDRegistered\": {\n \"type\": \"boolean\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"controllerKey\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"lazyDisabled\": {\n \"type\": \"boolean\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"oid4vci-issuer\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n }\n ]\n },\n \"ManagedIdentifierMethod\": {\n \"type\": \"string\",\n \"enum\": [\n \"did\",\n \"jwk\",\n \"x5c\",\n \"kid\",\n \"key\",\n \"cose_key\",\n \"oid4vci-issuer\"\n ]\n },\n \"ManagedIdentifierOpts\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"keyType\": {\n \"$ref\": \"#/components/schemas/TKeyType\"\n },\n \"offlineWhenNoDIDRegistered\": {\n \"type\": \"boolean\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"controllerKey\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"oid4vci-issuer\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n }\n ]\n },\n \"IIdentifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\",\n \"description\": \"Decentralized identifier\"\n },\n \"alias\": {\n \"type\": \"string\",\n \"description\": \"Optional. Identifier alias. Can be used to reference an object in an external system\"\n },\n \"provider\": {\n \"type\": \"string\",\n \"description\": \"Identifier provider name\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\",\n \"description\": \"Controller key id\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"description\": \"Array of managed keys\"\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IService\"\n },\n \"description\": \"Array of services\"\n }\n },\n \"required\": [\n \"did\",\n \"provider\",\n \"keys\",\n \"services\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Identifier interface\"\n },\n \"IKey\": {\n \"type\": \"object\",\n \"properties\": {\n \"kid\": {\n \"type\": \"string\",\n \"description\": \"Key ID\"\n },\n \"kms\": {\n \"type\": \"string\",\n \"description\": \"Key Management System\"\n },\n \"type\": {\n \"$ref\": \"#/components/schemas/TKeyType\",\n \"description\": \"Key type\"\n },\n \"publicKeyHex\": {\n \"type\": \"string\",\n \"description\": \"Public key\"\n },\n \"privateKeyHex\": {\n \"type\": \"string\",\n \"description\": \"Optional. Private key\"\n },\n \"meta\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/KeyMetadata\"\n },\n {\n \"type\": \"null\"\n }\n ],\n \"description\": \"Optional. Key metadata. This should be used to determine which algorithms are supported.\"\n }\n },\n \"required\": [\n \"kid\",\n \"kms\",\n \"type\",\n \"publicKeyHex\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Cryptographic key\"\n },\n \"TKeyType\": {\n \"type\": \"string\",\n \"enum\": [\n \"Ed25519\",\n \"Secp256k1\",\n \"Secp256r1\",\n \"X25519\",\n \"Bls12381G1\",\n \"Bls12381G2\",\n \"RSA\"\n ],\n \"description\": \"Cryptographic key type.\"\n },\n \"KeyMetadata\": {\n \"type\": \"object\",\n \"properties\": {\n \"algorithms\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n }\n },\n \"description\": \"This encapsulates data about a key.\\n\\nImplementations of {@link @veramo/key-manager#AbstractKeyManagementSystem | AbstractKeyManagementSystem } should populate this object, for each key, with the algorithms that can be performed using it.\\n\\nThis can also be used to add various tags to the keys under management.\"\n },\n \"IService\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\",\n \"description\": \"ID\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Service type\"\n },\n \"serviceEndpoint\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IServiceEndpoint\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IServiceEndpoint\"\n }\n }\n ],\n \"description\": \"Endpoint URL\"\n },\n \"description\": {\n \"type\": \"string\",\n \"description\": \"Optional. Description\"\n }\n },\n \"required\": [\n \"id\",\n \"type\",\n \"serviceEndpoint\"\n ],\n \"additionalProperties\": false,\n \"description\": \"Identifier service\"\n },\n \"IServiceEndpoint\": {\n \"anyOf\": [\n {\n \"type\": \"string\"\n },\n {\n \"$ref\": \"#/components/schemas/Record<string,any>\"\n }\n ],\n \"description\": \"Represents a service endpoint URL or a map of URLs\"\n },\n \"ManagedIdentifierType\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n {\n \"type\": \"string\"\n },\n {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n }\n ],\n \"description\": \"Use whenever we need to pass in an identifier. We can pass in kids, DIDs, IIdentifier objects and x5chains\\n\\nThe functions below can be used to check the type, and they also provide the proper 'runtime' types\"\n },\n \"ManagedIdentifierResult\": {\n \"anyOf\": [\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\",\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\",\n \"x5c\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IKey\"\n }\n },\n \"verificationMethodSection\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"did\",\n \"identifier\",\n \"issuer\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"keys\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n },\n {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierMethod\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierType\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ]\n }\n ]\n },\n \"ManagedIdentifierCoseKeyOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierCoseKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"cose_key\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/ICoseKeyJson\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierDidOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"identifier\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"keyType\": {\n \"$ref\": \"#/components/schemas/TKeyType\"\n },\n \"offlineWhenNoDIDRegistered\": {\n \"type\": \"boolean\"\n },\n \"noVerificationMethodFallback\": {\n \"type\": \"boolean\"\n },\n \"controllerKey\": {\n \"type\": \"boolean\"\n },\n \"vmRelationship\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierDidResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IIdentifier\"\n },\n \"did\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/components/schemas/IKey\"\n }\n },\n \"verificationMethodSection\": {\n \"$ref\": \"#/components/schemas/DIDDocumentSection\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"did\",\n \"identifier\",\n \"issuer\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"keys\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierJwkOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierJwkResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"jwk\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/JWK\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierKeyOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"key\"\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierKeyResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"key\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"$ref\": \"#/components/schemas/IKey\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierKidOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierKidResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"kid\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kid\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierOID4VCIssuerOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"oid4vci-issuer\"\n },\n \"identifier\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierOID4VCIssuerResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"oid4vci-issuer\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\"\n ],\n \"additionalProperties\": false\n },\n \"ManagedIdentifierX5cOpts\": {\n \"type\": \"object\",\n \"additionalProperties\": false,\n \"properties\": {\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"identifier\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n }\n },\n \"required\": [\n \"identifier\"\n ]\n },\n \"ManagedIdentifierX5cResult\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwk\": {\n \"$ref\": \"#/components/schemas/JWK\"\n },\n \"jwkThumbprint\": {\n \"type\": \"string\"\n },\n \"kmsKeyRef\": {\n \"type\": \"string\"\n },\n \"method\": {\n \"type\": \"string\",\n \"const\": \"x5c\"\n },\n \"opts\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOpts\"\n },\n \"key\": {\n \"$ref\": \"#/components/schemas/IKey\"\n },\n \"kid\": {\n \"type\": \"string\"\n },\n \"issuer\": {\n \"type\": \"string\"\n },\n \"clientId\": {\n \"type\": \"string\"\n },\n \"clientIdScheme\": {\n \"anyOf\": [\n {\n \"$ref\": \"#/components/schemas/ClientIdScheme\"\n },\n {\n \"type\": \"string\",\n \"const\": \"did\"\n },\n {\n \"type\": \"string\"\n }\n ]\n },\n \"identifier\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"x5c\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"certificate\": {}\n },\n \"required\": [\n \"certificate\",\n \"identifier\",\n \"jwk\",\n \"jwkThumbprint\",\n \"key\",\n \"kmsKeyRef\",\n \"method\",\n \"opts\",\n \"x5c\"\n ],\n \"additionalProperties\": false\n }\n },\n \"methods\": {\n \"identifierExternalResolve\": {\n \"description\": \"Main method for external identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierResult\"\n }\n },\n \"identifierExternalResolveByCoseKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierCoseKeyOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierCoseKeyResult\"\n }\n },\n \"identifierExternalResolveByDid\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierDidOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierDidResult\"\n }\n },\n \"identifierExternalResolveByJwk\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierJwkOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierJwkResult\"\n }\n },\n \"identifierExternalResolveByOIDFEntityId\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierOIDFEntityIdOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierOIDFEntityIdResult\"\n }\n },\n \"identifierExternalResolveByX5c\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ExternalIdentifierX5cResult\"\n }\n },\n \"identifierManagedGet\": {\n \"description\": \"Main method for managed identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOptsOrResult\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierResult\"\n }\n },\n \"identifierManagedGetByCoseKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierCoseKeyOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierCoseKeyResult\"\n }\n },\n \"identifierManagedGetByDid\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierDidOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierDidResult\"\n }\n },\n \"identifierManagedGetByJwk\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierJwkOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierJwkResult\"\n }\n },\n \"identifierManagedGetByKey\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierKeyOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierKeyResult\"\n }\n },\n \"identifierManagedGetByKid\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierKidOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierKidResult\"\n }\n },\n \"identifierManagedGetByOID4VCIssuer\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOID4VCIssuerOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierOID4VCIssuerResult\"\n }\n },\n \"identifierManagedGetByX5c\": {\n \"description\": \"\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierX5cOpts\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ManagedIdentifierX5cResult\"\n }\n }\n }\n }\n }\n}","import type { ICoseKeyJson, JWK } from '@sphereon/ssi-types'\nimport type { IIdentifier, IKey } from '@veramo/core'\nimport type { ExternalIdentifierType } from './externalIdentifierTypes'\nimport type { ManagedIdentifierType } from './managedIdentifierTypes'\n\nexport interface JwkInfo {\n jwk: JWK\n jwkThumbprint: string\n}\n\nexport function isDidIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is IIdentifier | string {\n return isIIdentifier(identifier) || (typeof identifier === 'string' && identifier.startsWith('did:'))\n}\n\nexport function isIIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is IIdentifier {\n return typeof identifier === 'object' && !Array.isArray(identifier) && 'did' in identifier && 'keys' in identifier\n}\n\nexport function isJwkIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is JWK {\n return typeof identifier === 'object' && !Array.isArray(identifier) && 'kty' in identifier\n}\n\nexport function isOidcDiscoveryIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string {\n return typeof identifier === 'string' && identifier.startsWith('http') && identifier.endsWith('/.well-known/openid-configuration')\n}\n\nexport function isJwksUrlIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string {\n return typeof identifier === 'string' && identifier.startsWith('http') && identifier.endsWith('jwks.json')\n}\n\nexport function isKidIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string {\n return typeof identifier === 'string' && !identifier.startsWith('did:') && !identifier.startsWith('http')\n}\n\nexport function isOID4VCIssuerIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string {\n return typeof identifier === 'string' && identifier.startsWith('http') && identifier.endsWith('/.well-known/openid-credential-issuer')\n}\n\nexport function isKeyIdentifier(identifier: ManagedIdentifierType): identifier is IKey {\n return (\n typeof identifier === 'string' &&\n !Array.isArray(identifier) &&\n typeof identifier === 'object' &&\n `kid` in identifier &&\n 'publicKeyHex' in identifier\n )\n}\n\nexport function isCoseKeyIdentifier(identifier: ManagedIdentifierType): identifier is ICoseKeyJson {\n return typeof identifier === 'object' && `kty` in identifier && ('baseIV' in identifier || 'x5chain' in identifier) && !('x5c' in identifier)\n}\n\nexport function isOIDFEntityIdIdentifier(identifier: ManagedIdentifierType): identifier is string {\n return typeof identifier === 'string' && identifier.startsWith('https://')\n}\n\nexport function isX5cIdentifier(identifier: ManagedIdentifierType | ExternalIdentifierType): identifier is string[] {\n return Array.isArray(identifier) && identifier.length > 0 // todo: Do we want to do additional validation? We know it must be DER and thus hex for instance\n}\n","import type { DidDocumentJwks } from '@sphereon/ssi-sdk-ext.did-utils'\nimport type { ICoseKeyJson, IValidationResult, JWK } from '@sphereon/ssi-types'\nimport type { X509CertificateChainValidationOpts, X509ValidationResult } from '@sphereon/ssi-sdk-ext.x509-utils'\nimport type { IParsedDID } from '@sphereon/ssi-types'\nimport type { DIDDocument, DIDDocumentSection, DIDResolutionResult } from '@veramo/core'\nimport {\n isCoseKeyIdentifier,\n isDidIdentifier,\n isOIDFEntityIdIdentifier,\n isJwkIdentifier,\n isJwksUrlIdentifier,\n isKidIdentifier,\n isOidcDiscoveryIdentifier,\n isX5cIdentifier,\n type JwkInfo,\n} from './common'\n// import type { JwsPayload } from './IJwtService'\n\n/**\n * Use whenever we need to resolve an external identifier. We can pass in kids, DIDs, and x5chains\n *\n * The functions below can be used to check the type, and they also provide the proper runtime types\n */\nexport type ExternalIdentifierType = string | string[] | JWK\n\nexport type ExternalIdentifierOptsBase = {\n method?: ExternalIdentifierMethod // If provided always takes precedences otherwise it will be inferred from the identifier\n identifier: ExternalIdentifierType\n}\n\nexport type ExternalIdentifierDidOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'did'\n identifier: string\n noVerificationMethodFallback?: boolean\n vmRelationship?: DIDDocumentSection\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\nexport function isExternalIdentifierDidOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierDidOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'did') || isDidIdentifier(identifier)\n}\n\nexport type ExternalIdentifierOpts = (\n | ExternalIdentifierJwkOpts\n | ExternalIdentifierX5cOpts\n | ExternalIdentifierDidOpts\n | ExternalIdentifierKidOpts\n | ExternalIdentifierCoseKeyOpts\n | ExternalIdentifierOIDFEntityIdOpts\n) &\n ExternalIdentifierOptsBase\n\nexport type ExternalIdentifierKidOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'kid'\n identifier: string\n}\n\nexport function isExternalIdentifierKidOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierKidOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'kid') || isKidIdentifier(identifier)\n}\n\nexport type ExternalIdentifierJwkOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'jwk'\n identifier: JWK\n x5c?: ExternalIdentifierX5cOpts\n}\n\nexport function isExternalIdentifierJwkOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierJwkOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'jwk') || isJwkIdentifier(identifier)\n}\n\nexport type ExternalIdentifierCoseKeyOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'cose_key'\n identifier: ICoseKeyJson\n}\n\nexport function isExternalIdentifierCoseKeyOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierCoseKeyOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'cose_key') || isCoseKeyIdentifier(identifier)\n}\n\nexport type ExternalIdentifierOidcDiscoveryOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'oidc-discovery'\n identifier: string\n}\n\nexport function isExternalIdentifierOidcDiscoveryOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierJwkOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'oidc-discovery') || isOidcDiscoveryIdentifier(identifier)\n}\n\nexport type ExternalIdentifierJwksUrlOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'jwks-url'\n identifier: string\n}\n\nexport function isExternalIdentifierJwksUrlOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierJwksUrlOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'oidc-discovery') || isJwksUrlIdentifier(identifier)\n}\n\nexport type ExternalIdentifierOIDFEntityIdOpts = Omit<ExternalIdentifierOptsBase, 'method'> & {\n method?: 'entity_id'\n identifier: string\n trustAnchors?: Array<string>\n}\n\nexport function isExternalIdentifierOIDFEntityIdOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierOIDFEntityIdOpts {\n const { identifier } = opts\n return (('method' in opts && opts.method === 'entity_id') || 'trustAnchors' in opts) && isOIDFEntityIdIdentifier(identifier)\n}\n\nexport type ExternalIdentifierX5cOpts = Omit<ExternalIdentifierOptsBase, 'method'> &\n X509CertificateChainValidationOpts & {\n method?: 'x5c'\n identifier: string[]\n verify?: boolean // defaults to true\n verificationTime?: Date\n trustAnchors?: string[]\n }\n\nexport function isExternalIdentifierX5cOpts(opts: ExternalIdentifierOptsBase): opts is ExternalIdentifierX5cOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'x5c') || isX5cIdentifier(identifier)\n}\n\nexport type ExternalIdentifierMethod = 'did' | 'jwk' | 'x5c' | 'kid' | 'cose_key' | 'oidc-discovery' | 'jwks-url' | 'oid4vci-issuer' | 'entity_id'\n\nexport type ExternalIdentifierResult = IExternalIdentifierResultBase &\n (\n | ExternalIdentifierDidResult\n | ExternalIdentifierX5cResult\n | ExternalIdentifierJwkResult\n | ExternalIdentifierOIDFEntityIdResult\n | ExternalIdentifierCoseKeyResult\n )\n\nexport interface IExternalIdentifierResultBase {\n method: ExternalIdentifierMethod\n jwks: Array<ExternalJwkInfo>\n}\n\nexport interface ExternalIdentifierJwkResult extends IExternalIdentifierResultBase {\n method: 'jwk'\n jwk: JWK\n x5c?: ExternalIdentifierX5cResult\n}\n\nexport interface ExternalIdentifierCoseKeyResult extends IExternalIdentifierResultBase {\n method: 'cose_key'\n coseKey: ICoseKeyJson\n x5c?: ExternalIdentifierX5cResult\n}\n\nexport interface ExternalIdentifierX5cResult extends IExternalIdentifierResultBase {\n method: 'x5c'\n x5c: string[]\n issuerJWK: JWK\n verificationResult?: X509ValidationResult\n certificates: any[] // for now since our schema generator trips on pkijs Certificate(Json) object //fixme\n}\n\nexport type TrustedAnchor = string\nexport type PublicKeyHex = string\nexport type ErrorMessage = string\n\nexport interface ExternalIdentifierOIDFEntityIdResult extends IExternalIdentifierResultBase {\n method: 'entity_id'\n trustedAnchors: Array<TrustedAnchor>\n errorList?: Record<TrustedAnchor, ErrorMessage>\n jwtPayload?: JwtPayload\n trustEstablished: boolean\n}\n\nexport interface ExternalJwkInfo extends JwkInfo {\n kid?: string\n publicKeyHex: string\n}\n\nexport interface ExternalIdentifierDidResult extends IExternalIdentifierResultBase {\n method: 'did'\n did: string\n didDocument?: DIDDocument\n didJwks?: DidDocumentJwks\n didResolutionResult: Omit<DIDResolutionResult, 'didDocument'> // we already provide that directly\n didParsed: IParsedDID\n}\n\nexport interface JwtPayload {\n iss?: string\n sub?: string\n aud?: string[] | string\n exp?: number\n nbf?: number\n iat?: number\n jti?: string\n [key: string]: unknown\n}\n\nexport type IJwsValidationResult = IValidationResult & {\n jws: any\n}\n","import type { ClientIdScheme } from '@sphereon/ssi-sdk-ext.x509-utils'\nimport type { ICoseKeyJson, JWK } from '@sphereon/ssi-types'\nimport type { DIDDocumentSection, IIdentifier, IKey, TKeyType } from '@veramo/core'\nimport {\n isCoseKeyIdentifier,\n isDidIdentifier,\n isOID4VCIssuerIdentifier,\n isJwkIdentifier,\n isKeyIdentifier,\n isKidIdentifier,\n isX5cIdentifier,\n type JwkInfo,\n} from './common'\n\n/**\n * Use whenever we need to pass in an identifier. We can pass in kids, DIDs, IIdentifier objects and x5chains\n *\n * The functions below can be used to check the type, and they also provide the proper 'runtime' types\n */\nexport type ManagedIdentifierType = IIdentifier /*did*/ | string /*did or kid*/ | string[] /*x5c*/ | JWK | IKey | ICoseKeyJson\n\nexport type ManagedIdentifierOpts = (\n | ManagedIdentifierJwkOpts\n | ManagedIdentifierX5cOpts\n | ManagedIdentifierDidOpts\n | ManagedIdentifierKidOpts\n | ManagedIdentifierKeyOpts\n | ManagedIdentifierCoseKeyOpts\n | ManagedIdentifierOID4VCIssuerOpts\n) &\n ManagedIdentifierOptsBase\n\nexport type ManagedIdentifierOptsBase = {\n method?: ManagedIdentifierMethod // If provided always takes precedences otherwise it will be inferred from the identifier\n identifier: ManagedIdentifierType\n kmsKeyRef?: string // The key reference for the KMS system. If provided this value will be used to determine the appropriate key. Otherwise it will be inferred\n issuer?: string // can be used when a specific issuer needs to end up, for instance when signing JWTs. Will be returned or inferred if not provided\n kid?: string // can be used when a specific kid value needs to be used. For instance when signing JWTs. Will be returned or inferred if not provided\n clientId?: string\n clientIdScheme?: ClientIdScheme | 'did' | string\n}\n\nexport type ManagedIdentifierDidOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'did'\n identifier: IIdentifier | string\n keyType?: TKeyType\n offlineWhenNoDIDRegistered?: boolean\n noVerificationMethodFallback?: boolean\n controllerKey?: boolean\n vmRelationship?: DIDDocumentSection\n}\n\nexport function isManagedIdentifierDidOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierDidOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'did') || isDidIdentifier(identifier)\n}\n\nexport type ManagedIdentifierKidOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'kid'\n identifier: string\n}\n\nexport function isManagedIdentifierKidOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierKidOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'kid') || isKidIdentifier(identifier)\n}\n\nexport type ManagedIdentifierKeyOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'key'\n identifier: IKey\n}\n\nexport function isManagedIdentifierKeyOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierKeyOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'key') || isKeyIdentifier(identifier)\n}\n\nexport type ManagedIdentifierCoseKeyOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'cose_key'\n identifier: ICoseKeyJson\n}\n\nexport function isManagedIdentifierCoseKeyOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierCoseKeyOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'cose_key') || isCoseKeyIdentifier(identifier)\n}\n\nexport type ManagedIdentifierOID4VCIssuerOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'oid4vci-issuer'\n identifier: string\n}\n\nexport function isManagedIdentifierOID4VCIssuerOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierCoseKeyOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'oid4vci-issuer') || isOID4VCIssuerIdentifier(identifier)\n}\n\nexport type ManagedIdentifierJwkOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'jwk'\n identifier: JWK\n}\n\nexport function isManagedIdentifierJwkOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierJwkOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'jwk') || isJwkIdentifier(identifier)\n}\n\nexport type ManagedIdentifierX5cOpts = Omit<ManagedIdentifierOptsBase, 'method' | 'identifier'> & {\n method?: 'x5c'\n identifier: string[]\n}\n\nexport function isManagedIdentifierX5cOpts(opts: ManagedIdentifierOptsBase): opts is ManagedIdentifierX5cOpts {\n const { identifier } = opts\n return ('method' in opts && opts.method === 'x5c') || isX5cIdentifier(identifier)\n}\n\nexport interface ManagedJwkInfo extends JwkInfo {\n kmsKeyRef: string\n}\n\nexport interface IManagedIdentifierResultBase extends ManagedJwkInfo {\n method: ManagedIdentifierMethod\n opts: ManagedIdentifierOpts\n key: IKey\n kid?: string\n issuer?: string\n clientId?: string\n clientIdScheme?: ClientIdScheme | 'did' | string\n identifier: ManagedIdentifierType\n}\n\nexport function isManagedIdentifierCoseKeyResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierCoseKeyResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'cose_key'\n}\n\nexport function isManagedIdentifierDidResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierDidResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'did'\n}\n\nexport function isManagedIdentifierX5cResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierX5cResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'x5c'\n}\n\nexport function isManagedIdentifierJwkResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierJwkResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'jwk'\n}\n\nexport function isManagedIdentifierKidResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierKidResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'kid'\n}\n\nexport function isManagedIdentifierKeyResult(object: IManagedIdentifierResultBase): object is ManagedIdentifierKeyResult {\n return object!! && typeof object === 'object' && 'method' in object && object.method === 'key'\n}\n\nexport interface ManagedIdentifierDidResult extends IManagedIdentifierResultBase {\n method: 'did'\n identifier: IIdentifier\n did: string\n // key: IKey // The key associated with the requested did method sections. Controller key in case of no DID method section requested\n keys: Array<IKey> // If there is more than one key for the VM relationship.\n verificationMethodSection?: DIDDocumentSection\n controllerKeyId?: string\n issuer: string\n kid: string\n}\n\nexport interface ManagedIdentifierJwkResult extends IManagedIdentifierResultBase {\n identifier: JWK\n method: 'jwk'\n}\n\nexport interface ManagedIdentifierKidResult extends IManagedIdentifierResultBase {\n method: 'kid'\n identifier: string\n kid: string\n}\n\nexport interface ManagedIdentifierKeyResult extends IManagedIdentifierResultBase {\n method: 'key'\n identifier: IKey\n}\n\nexport interface ManagedIdentifierCoseKeyResult extends IManagedIdentifierResultBase {\n method: 'cose_key'\n identifier: ICoseKeyJson\n}\n\nexport interface ManagedIdentifierOID4VCIssuerResult extends IManagedIdentifierResultBase {\n method: 'oid4vci-issuer'\n identifier: string\n}\n\nexport interface ManagedIdentifierX5cResult extends IManagedIdentifierResultBase {\n method: 'x5c'\n identifier: string[]\n x5c: string[]\n certificate: any // Certificate(JSON_, but trips schema generator. Probably want to create our own DTO\n}\n\nexport type ManagedIdentifierMethod = 'did' | 'jwk' | 'x5c' | 'kid' | 'key' | 'cose_key' | 'oid4vci-issuer'\n\nexport type ManagedIdentifierResult = IManagedIdentifierResultBase &\n (\n | ManagedIdentifierX5cResult\n | ManagedIdentifierDidResult\n | ManagedIdentifierJwkResult\n | ManagedIdentifierKidResult\n | ManagedIdentifierKeyResult\n | ManagedIdentifierCoseKeyResult\n | ManagedIdentifierOID4VCIssuerResult\n )\n\nexport type ManagedIdentifierOptsOrResult = (ManagedIdentifierResult | ManagedIdentifierOpts) & {\n lazyDisabled?: boolean\n}\n","import type { IAgentContext, IDIDManager, IKeyManager, IPluginMethodMap } from '@veramo/core'\nimport type {\n ExternalIdentifierCoseKeyOpts,\n ExternalIdentifierCoseKeyResult,\n ExternalIdentifierDidOpts,\n ExternalIdentifierDidResult,\n ExternalIdentifierJwkOpts,\n ExternalIdentifierJwkResult,\n ExternalIdentifierOIDFEntityIdOpts,\n ExternalIdentifierOIDFEntityIdResult,\n ExternalIdentifierOpts,\n ExternalIdentifierResult,\n ExternalIdentifierX5cOpts,\n ExternalIdentifierX5cResult,\n} from './externalIdentifierTypes'\nimport type {\n ManagedIdentifierCoseKeyOpts,\n ManagedIdentifierCoseKeyResult,\n ManagedIdentifierDidOpts,\n ManagedIdentifierDidResult,\n ManagedIdentifierJwkOpts,\n ManagedIdentifierJwkResult,\n ManagedIdentifierKeyOpts,\n ManagedIdentifierKeyResult,\n ManagedIdentifierKidOpts,\n ManagedIdentifierKidResult,\n ManagedIdentifierOID4VCIssuerOpts,\n ManagedIdentifierOID4VCIssuerResult,\n ManagedIdentifierOptsOrResult,\n ManagedIdentifierResult,\n ManagedIdentifierX5cOpts,\n ManagedIdentifierX5cResult,\n} from './managedIdentifierTypes'\n\n// Exposing the methods here for any REST implementation\nexport const identifierResolutionContextMethods: Array<string> = [\n 'identifierManagedGet',\n 'identifierManagedGetByDid',\n 'identifierManagedGetByKid',\n 'identifierManagedGetByJwk',\n 'identifierManagedGetByX5c',\n 'identifierManagedGetByKey',\n 'identifierManagedGetByOID4VCIssuer',\n 'identifierManagedGetByCoseKey',\n 'identifierExternalResolve',\n 'identifierExternalResolveByDid',\n 'identifierExternalResolveByX5c',\n 'identifierExternalResolveByJwk',\n 'identifierExternalResolveByCoseKey',\n 'identifierExternalResolveByOIDFEntityId',\n]\n\n/**\n * @public\n */\nexport interface IIdentifierResolution extends IPluginMethodMap {\n /**\n * Main method for managed identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps\n *\n * The end result of all these methods is a common baseline response that allows to use a key from the registered KMS systems. It also provides kid and iss(uer) values that can be used in a JWT/JWS for instance\n * Allows to get a managed identifier result in case identifier options are passed in, but returns the identifier directly in case results are passed in. This means resolution can have happened before, or happens in this method\n *\n * We use the opts or result type almost everywhere, as it allows for just in time resolution whenever this method is called and afterwards we have the result, so resolution doesn't have to hit the DB, or external endpoints.\n * Also use this method in the local agent, not using REST. If case the identifier needs to be resolved, you can always have the above methods using REST\n * @param args\n * @param context\n * @public\n */\n identifierManagedGet(args: ManagedIdentifierOptsOrResult, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierResult>\n\n identifierManagedGetByDid(args: ManagedIdentifierDidOpts, context: IAgentContext<IKeyManager & IDIDManager>): Promise<ManagedIdentifierDidResult>\n\n identifierManagedGetByKid(args: ManagedIdentifierKidOpts, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierKidResult>\n\n identifierManagedGetByJwk(args: ManagedIdentifierJwkOpts, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierJwkResult>\n\n identifierManagedGetByX5c(args: ManagedIdentifierX5cOpts, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierX5cResult>\n\n identifierManagedGetByKey(args: ManagedIdentifierKeyOpts, context: IAgentContext<IKeyManager>): Promise<ManagedIdentifierKeyResult>\n\n identifierManagedGetByCoseKey(\n args: ManagedIdentifierCoseKeyOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierCoseKeyResult>\n\n identifierManagedGetByOID4VCIssuer(\n args: ManagedIdentifierOID4VCIssuerOpts,\n context: IAgentContext<any>,\n ): Promise<ManagedIdentifierOID4VCIssuerResult>\n\n // TODO: We can create a custom managed identifier method allowing developers to register a callback function to get their implementation hooked up. Needs more investigation as it would also impact the KMS\n\n /**\n * Main method for external identifiers. We always go through this method (also the others) as we want to integrate a plugin for anomaly detection. Having a single method helps\n * @param args\n * @param context\n * @public\n */\n identifierExternalResolve(args: ExternalIdentifierOpts, context: IAgentContext<any>): Promise<ExternalIdentifierResult>\n\n identifierExternalResolveByDid(args: ExternalIdentifierDidOpts, context: IAgentContext<any>): Promise<ExternalIdentifierDidResult>\n\n identifierExternalResolveByJwk(args: ExternalIdentifierJwkOpts, context: IAgentContext<any>): Promise<ExternalIdentifierJwkResult>\n\n identifierExternalResolveByCoseKey(args: ExternalIdentifierCoseKeyOpts, context: IAgentContext<any>): Promise<ExternalIdentifierCoseKeyResult>\n\n identifierExternalResolveByX5c(args: ExternalIdentifierX5cOpts, context: IAgentContext<any>): Promise<ExternalIdentifierX5cResult>\n\n identifierExternalResolveByOIDFEntityId(\n args: ExternalIdentifierOIDFEntityIdOpts,\n context: IAgentContext<any>,\n ): Promise<ExternalIdentifierOIDFEntityIdResult>\n}\n","import { globalCrypto } from '@sphereon/ssi-sdk-ext.key-utils'\nimport type { IAgentContext, IAgentPlugin, IDIDManager, IKeyManager } from '@veramo/core'\nimport type { ExternalIdentifierOIDFEntityIdOpts, ExternalIdentifierOIDFEntityIdResult } from '../types'\nimport { schema } from '../index'\nimport { resolveExternalIdentifier, ensureManagedIdentifierResult } from '../functions'\nimport type {\n ExternalIdentifierDidOpts,\n ExternalIdentifierDidResult,\n ExternalIdentifierOpts,\n ExternalIdentifierResult,\n ExternalIdentifierX5cOpts,\n ExternalIdentifierX5cResult,\n ExternalIdentifierCoseKeyOpts,\n ExternalIdentifierCoseKeyResult,\n ExternalIdentifierJwkOpts,\n ExternalIdentifierJwkResult,\n IIdentifierResolution,\n ManagedIdentifierCoseKeyOpts,\n ManagedIdentifierCoseKeyResult,\n ManagedIdentifierDidOpts,\n ManagedIdentifierDidResult,\n ManagedIdentifierJwkOpts,\n ManagedIdentifierJwkResult,\n ManagedIdentifierKidOpts,\n ManagedIdentifierKidResult,\n ManagedIdentifierResult,\n ManagedIdentifierX5cOpts,\n ManagedIdentifierX5cResult,\n ManagedIdentifierOID4VCIssuerResult,\n ManagedIdentifierKeyOpts,\n ManagedIdentifierKeyResult,\n ManagedIdentifierOptsOrResult,\n ManagedIdentifierOID4VCIssuerOpts,\n} from '../types'\nimport type { IOIDFClient } from '@sphereon/ssi-sdk.oidf-client'\n\nimport { webcrypto } from 'node:crypto'\n\n/**\n * @public\n */\nexport class IdentifierResolution implements IAgentPlugin {\n readonly _crypto: webcrypto.Crypto\n\n readonly schema = schema.IMnemonicInfoGenerator\n readonly methods: IIdentifierResolution = {\n identifierManagedGet: this.identifierManagedGet.bind(this),\n identifierManagedGetByDid: this.identifierManagedGetByDid.bind(this),\n identifierManagedGetByKid: this.identifierManagedGetByKid.bind(this),\n identifierManagedGetByJwk: this.identifierManagedGetByJwk.bind(this),\n identifierManagedGetByX5c: this.identifierManagedGetByX5c.bind(this),\n identifierManagedGetByKey: this.identifierManagedGetByKey.bind(this),\n identifierManagedGetByCoseKey: this.identifierManagedGetByCoseKey.bind(this),\n identifierManagedGetByOID4VCIssuer: this.identifierManagedGetByOID4VCIssuer.bind(this),\n\n identifierExternalResolve: this.identifierExternalResolve.bind(this),\n identifierExternalResolveByDid: this.identifierExternalResolveByDid.bind(this),\n identifierExternalResolveByX5c: this.identifierExternalResolveByX5c.bind(this),\n identifierExternalResolveByJwk: this.identifierExternalResolveByJwk.bind(this),\n identifierExternalResolveByCoseKey: this.identifierExternalResolveByCoseKey.bind(this),\n identifierExternalResolveByOIDFEntityId: this.identifierExternalResolveByOIDFEntityId.bind(this),\n\n // todo: JWKSet, oidc-discovery, oid4vci-issuer etc. Anything we already can resolve and need keys of\n }\n\n /**\n * TODO: Add a cache, as we are retrieving the same keys/info quite often\n */\n constructor(opts?: { crypto?: webcrypto.Crypto }) {\n this._crypto = globalCrypto(false, opts?.crypto)\n }\n\n /**\n * Main method for managed identifiers. We always go through this method (also the other methods below) as we want to\n * integrate a plugin for anomaly detection. Having a single method helps\n * @param args\n * @param context\n */\n private async identifierManagedGet(\n args: ManagedIdentifierOptsOrResult,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierResult> {\n return await ensureManagedIdentifierResult({ ...args, crypto: this._crypto }, context)\n }\n\n private async identifierManagedGetByDid(\n args: ManagedIdentifierDidOpts,\n context: IAgentContext<IKeyManager & IDIDManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierDidResult> {\n return (await this.identifierManagedGet({ ...args, method: 'did' }, context)) as ManagedIdentifierDidResult\n }\n\n private async identifierManagedGetByKid(\n args: ManagedIdentifierKidOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierKidResult> {\n return (await this.identifierManagedGet({ ...args, method: 'kid' }, context)) as ManagedIdentifierKidResult\n }\n\n private async identifierManagedGetByKey(\n args: ManagedIdentifierKeyOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierKeyResult> {\n return (await this.identifierManagedGet({ ...args, method: 'key' }, context)) as ManagedIdentifierKeyResult\n }\n\n private async identifierManagedGetByCoseKey(\n args: ManagedIdentifierCoseKeyOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierCoseKeyResult> {\n return (await this.identifierManagedGet({ ...args, method: 'cose_key' }, context)) as ManagedIdentifierCoseKeyResult\n }\n\n private async identifierManagedGetByOID4VCIssuer(\n args: ManagedIdentifierOID4VCIssuerOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierOID4VCIssuerResult> {\n return (await this.identifierManagedGet({ ...args, method: 'oid4vci-issuer' }, context)) as ManagedIdentifierOID4VCIssuerResult\n }\n\n private async identifierManagedGetByJwk(\n args: ManagedIdentifierJwkOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierJwkResult> {\n return (await this.identifierManagedGet({ ...args, method: 'jwk' }, context)) as ManagedIdentifierJwkResult\n }\n\n private async identifierManagedGetByX5c(\n args: ManagedIdentifierX5cOpts,\n context: IAgentContext<IKeyManager & IIdentifierResolution>,\n ): Promise<ManagedIdentifierX5cResult> {\n return (await this.identifierManagedGet({ ...args, method: 'x5c' }, context)) as ManagedIdentifierX5cResult\n }\n\n private async identifierExternalResolve(\n args: ExternalIdentifierOpts,\n context: IAgentContext<IKeyManager | IOIDFClient>,\n ): Promise<ExternalIdentifierResult> {\n return await resolveExternalIdentifier({ ...args, crypto: this._crypto }, context)\n }\n\n private async identifierExternalResolveByDid(args: ExternalIdentifierDidOpts, context: IAgentContext<any>): Promise<ExternalIdentifierDidResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'did' }, context)) as ExternalIdentifierDidResult\n }\n\n private async identifierExternalResolveByX5c(args: ExternalIdentifierX5cOpts, context: IAgentContext<any>): Promise<ExternalIdentifierX5cResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'x5c' }, context)) as ExternalIdentifierX5cResult\n }\n\n private async identifierExternalResolveByCoseKey(\n args: ExternalIdentifierCoseKeyOpts,\n context: IAgentContext<any>,\n ): Promise<ExternalIdentifierCoseKeyResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'cose_key' }, context)) as ExternalIdentifierCoseKeyResult\n }\n\n private async identifierExternalResolveByJwk(args: ExternalIdentifierJwkOpts, context: IAgentContext<any>): Promise<ExternalIdentifierJwkResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'jwk' }, context)) as ExternalIdentifierJwkResult\n }\n\n private async identifierExternalResolveByOIDFEntityId(\n args: ExternalIdentifierOIDFEntityIdOpts,\n context: IAgentContext<any>,\n ): Promise<ExternalIdentifierOIDFEntityIdResult> {\n return (await this.identifierExternalResolve({ ...args, method: 'entity_id' }, context)) as ExternalIdentifierOIDFEntityIdResult\n }\n}\n","import { getFirstKeyWithRelation } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { calculateJwkThumbprint, coseKeyToJwk, globalCrypto, toJwk } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { pemOrDerToX509Certificate } from '@sphereon/ssi-sdk-ext.x509-utils'\nimport { contextHasDidManager, contextHasKeyManager } from '@sphereon/ssi-sdk.agent-config'\nimport type { ICoseKeyJson, JWK } from '@sphereon/ssi-types'\nimport type { IAgentContext, IIdentifier, IKey, IKeyManager } from '@veramo/core'\nimport { webcrypto } from 'node:crypto'\nimport { CryptoEngine, setEngine } from 'pkijs'\nimport type {\n IIdentifierResolution,\n ManagedIdentifierCoseKeyOpts,\n ManagedIdentifierCoseKeyResult,\n ManagedIdentifierDidOpts,\n ManagedIdentifierDidResult,\n ManagedIdentifierJwkOpts,\n ManagedIdentifierJwkResult,\n ManagedIdentifierKeyOpts,\n ManagedIdentifierKeyResult,\n ManagedIdentifierKidOpts,\n ManagedIdentifierKidResult,\n ManagedIdentifierOID4VCIssuerOpts,\n ManagedIdentifierOID4VCIssuerResult,\n ManagedIdentifierOptsOrResult,\n ManagedIdentifierResult,\n ManagedIdentifierX5cOpts,\n ManagedIdentifierX5cResult,\n} from '../types'\nimport {\n isManagedIdentifierCoseKeyOpts,\n isManagedIdentifierDidOpts,\n isManagedIdentifierDidResult,\n isManagedIdentifierJwkOpts,\n isManagedIdentifierJwkResult,\n isManagedIdentifierKeyOpts,\n isManagedIdentifierKeyResult,\n isManagedIdentifierKidOpts,\n isManagedIdentifierOID4VCIssuerOpts,\n isManagedIdentifierX5cOpts,\n} from '../types'\n\nexport async function getManagedKidIdentifier(\n opts: ManagedIdentifierKidOpts,\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierKidResult> {\n const method = 'kid'\n let key: IKey | undefined = undefined\n let issuer: string | undefined = undefined\n let kid: string | undefined = undefined\n if (!contextHasKeyManager(context)) {\n return Promise.reject(Error(`Cannot get Key/JWK identifier if KeyManager plugin is not enabled!`))\n } else if (opts.identifier.startsWith('did:')) {\n const did = opts.identifier.split('#')[0]\n const didIdentifier = await getManagedDidIdentifier({ ...opts, method: 'did', identifier: did }, context)\n key = didIdentifier.key\n issuer = didIdentifier.issuer\n kid = opts?.kid ?? (key.meta?.verificationMethod?.id as string) ?? didIdentifier.kid\n }\n if (!key) {\n key = await context.agent.keyManagerGet({ kid: opts.kmsKeyRef ?? opts.identifier })\n }\n const jwk = toJwk(key.publicKeyHex, key.type, { key })\n const jwkThumbprint = (key.meta?.jwkThumbprint as string) ?? calculateJwkThumbprint({ jwk })\n if (!kid) {\n kid = opts.kid ?? (key.meta?.verificationMethod?.id as string) ?? key.kid ?? jwkThumbprint\n }\n if (!issuer) {\n issuer = opts.issuer ?? kid // The different identifiers should set the value. Defaults to the kid\n }\n return {\n method,\n key,\n identifier: opts.identifier,\n jwk,\n jwkThumbprint,\n kid,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n issuer,\n kmsKeyRef: key.kid,\n opts,\n } satisfies ManagedIdentifierKidResult\n}\n\nexport function isManagedIdentifierResult(\n identifier: ManagedIdentifierOptsOrResult & {\n crypto?: webcrypto.Crypto\n },\n): identifier is ManagedIdentifierResult {\n return 'key' in identifier && 'kmsKeyRef' in identifier && 'method' in identifier && 'opts' in identifier && 'jwkThumbprint' in identifier\n}\n\n/**\n * Allows to get a managed identifier result in case identifier options are passed in, but returns the identifier directly in case results are passed in. This means resolution can have happened before, or happens in this method\n * @param identifier\n * @param context\n */\nexport async function ensureManagedIdentifierResult(\n identifier: ManagedIdentifierOptsOrResult & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierResult> {\n const { lazyDisabled = false } = identifier\n return !lazyDisabled && isManagedIdentifierResult(identifier) ? identifier : await getManagedIdentifier(identifier, context)\n}\n\n/**\n * This function is just a convenience function to get a common result. The user already apparently had a key, so could have called the kid version as well\n * @param opts\n * @param _context\n */\nexport async function getManagedKeyIdentifier(opts: ManagedIdentifierKeyOpts, _context?: IAgentContext<any>): Promise<ManagedIdentifierKeyResult> {\n const method = 'key'\n const key: IKey = opts.identifier\n if (opts.kmsKeyRef && opts.kmsKeyRef !== key.kid) {\n return Promise.reject(Error(`Cannot get a managed key object by providing a key and a kmsKeyRef that are different.}`))\n }\n const jwk = toJwk(key.publicKeyHex, key.type, { key })\n const jwkThumbprint = (key.meta?.jwkThumbprint as string) ?? calculateJwkThumbprint({ jwk })\n const kid = opts.kid ?? (key.meta?.verificationMethod?.id as string) ?? jwkThumbprint\n const issuer = opts.issuer ?? kid // The different identifiers should set the value. Defaults to the kid\n return {\n method,\n key,\n identifier: key,\n jwk,\n jwkThumbprint,\n kid,\n issuer,\n kmsKeyRef: key.kid,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierKeyResult\n}\n\n/**\n * This function is just a convenience function to get a common result. The user already apparently had a key, so could have called the kid version as well\n * @param opts\n * @param context\n */\nexport async function getManagedCoseKeyIdentifier(\n opts: ManagedIdentifierCoseKeyOpts,\n context: IAgentContext<any>,\n): Promise<ManagedIdentifierCoseKeyResult> {\n const method = 'cose_key'\n const coseKey: ICoseKeyJson = opts.identifier\n if (!contextHasKeyManager(context)) {\n return Promise.reject(Error(`Cannot get Cose Key identifier if KeyManager plugin is not enabled!`))\n }\n const jwk = coseKeyToJwk(coseKey)\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n const key = await context.agent.keyManagerGet({ kid: opts.kmsKeyRef ?? jwkThumbprint })\n const kid = opts.kid ?? coseKey.kid ?? jwkThumbprint\n const issuer = opts.issuer\n return {\n method,\n key,\n identifier: opts.identifier,\n jwk,\n jwkThumbprint,\n kid,\n issuer,\n kmsKeyRef: key.kid,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierCoseKeyResult\n}\n\nexport async function getManagedDidIdentifier(opts: ManagedIdentifierDidOpts, context: IAgentContext<any>): Promise<ManagedIdentifierDidResult> {\n const method = 'did'\n if (!contextHasDidManager(context)) {\n return Promise.reject(Error(`Cannot get DID identifier if DID Manager plugin is not enabled!`))\n }\n\n let identifier: IIdentifier\n if (typeof opts.identifier === 'string') {\n identifier = await context.agent.didManagerGet({ did: opts.identifier.split('#')[0] })\n } else {\n identifier = opts.identifier\n }\n\n const did = identifier.did\n const extendedKey = await getFirstKeyWithRelation(\n {\n ...opts,\n // Make sure we use offline mode if no pref was supplied. We are looking for managed DIDs after all. Could be it is not published yet\n offlineWhenNoDIDRegistered: opts.offlineWhenNoDIDRegistered ?? true,\n identifier,\n vmRelationship: opts.vmRelationship ?? 'verificationMethod',\n },\n context,\n )\n const key = extendedKey\n const jwk = toJwk(key.publicKeyHex, key.type, { key })\n const jwkThumbprint = key.meta?.jwkThumbprint ?? calculateJwkThumbprint({ jwk })\n let kid = opts.kid ?? extendedKey.meta?.verificationMethod?.id\n if (!kid.startsWith(did)) {\n // Make sure we create a fully qualified kid\n const hash = kid.startsWith('#') ? '' : '#'\n kid = `${did}${hash}${kid}`\n }\n const issuer = opts.issuer ?? did\n\n // filter keys based on the criteria\n let filteredKeys = identifier?.keys ?? []\n\n // first try to filter by kmsKeyRef if supplied\n if (opts.kmsKeyRef) {\n const keysByKmsKeyRef = filteredKeys.filter((k) => k.kid === opts.kmsKeyRef)\n if (keysByKmsKeyRef.length > 0) {\n filteredKeys = keysByKmsKeyRef\n }\n }\n\n // no match or kmsKeyRef not supplied, try vmRelationship\n if (filteredKeys.length === identifier?.keys?.length && opts.vmRelationship) {\n const keysByVmRelationship = filteredKeys.filter((k) => {\n const purposes = k.meta?.purposes\n if (!purposes || purposes.length === 0) {\n return opts.vmRelationship === 'verificationMethod'\n }\n return purposes.includes(opts.vmRelationship!)\n })\n if (keysByVmRelationship.length > 0) {\n filteredKeys = keysByVmRelationship\n }\n }\n\n //no match, try to filter by fragment from opts.identifier (if it's a string with fragment)\n if (filteredKeys.length === identifier?.keys?.length && typeof opts.identifier === 'string' && opts.identifier.includes('#')) {\n const fragment = opts.identifier.split('#')[1]\n const keysByFragment = filteredKeys.filter((k) => {\n const vmId = k.meta?.verificationMethod?.id\n return vmId === `${did}#${fragment}` || vmId === fragment || k.kid === fragment\n })\n if (keysByFragment.length > 0) {\n filteredKeys = keysByFragment\n }\n }\n\n // fall back to original keys if no filtering occurred\n const keys = filteredKeys\n\n // Update controllerKeyId to match the selected key\n const controllerKeyId = key.kid\n\n // update the identifier object with filtered keys and updated controllerKeyId\n const filteredIdentifier: IIdentifier = {\n ...identifier,\n keys: filteredKeys,\n controllerKeyId,\n }\n\n return {\n method,\n key,\n did,\n kmsKeyRef: key.kid,\n jwk,\n jwkThumbprint,\n controllerKeyId,\n kid,\n keys,\n issuer,\n identifier: filteredIdentifier,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n }\n}\n\nexport async function getManagedJwkIdentifier(\n opts: ManagedIdentifierJwkOpts,\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierJwkResult> {\n const method = 'jwk'\n const { kid, issuer } = opts\n if (!contextHasKeyManager(context)) {\n return Promise.reject(Error(`Cannot get Key/JWK identifier if KeyManager plugin is not enabled!`))\n }\n const key = await context.agent.keyManagerGet({ kid: opts.kmsKeyRef ?? calculateJwkThumbprint({ jwk: opts.identifier }) })\n const jwk = opts.identifier ?? toJwk(key.publicKeyHex, key.type, { key })\n const jwkThumbprint = (key.meta?.jwkThumbprint as string) ?? calculateJwkThumbprint({ jwk })\n // we explicitly do not set the kid and issuer, meaning it can remain null. Normally you do not provide a kid and issuer with Jwks.\n return {\n method,\n key,\n kmsKeyRef: key.kid,\n identifier: jwk,\n jwk,\n jwkThumbprint,\n kid,\n issuer,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierJwkResult\n}\n\nexport async function getManagedX5cIdentifier(\n opts: ManagedIdentifierX5cOpts & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierX5cResult> {\n const { kid, issuer } = opts\n const method = 'x5c'\n const x5c = opts.identifier\n if (x5c.length === 0) {\n return Promise.reject(`Cannot resolve x5c when an empty x5c is passed in`)\n } else if (!contextHasKeyManager(context)) {\n return Promise.reject(Error(`Cannot get X5c identifier if KeyManager plugin is not enabled!`))\n }\n const cryptoImpl = globalCrypto(false, opts.crypto)\n const certificate = pemOrDerToX509Certificate(x5c[0])\n const cryptoEngine = new CryptoEngine({ name: 'identifier_resolver_managed', crypto: cryptoImpl })\n setEngine(cryptoEngine.name, cryptoEngine)\n const pk = await certificate.getPublicKey(undefined, cryptoEngine)\n const jwk = (await cryptoEngine.subtle.exportKey('jwk', pk)) as JWK\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n const key = await context.agent.keyManagerGet({ kid: opts.kmsKeyRef ?? jwkThumbprint })\n // we explicitly do not set the kid and issuer, meaning it can remain null. Normally you do not provide a kid and issuer with x5c.\n\n return {\n method,\n x5c,\n identifier: x5c,\n certificate,\n jwk,\n jwkThumbprint,\n key,\n kmsKeyRef: key.kid,\n kid,\n issuer,\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierX5cResult\n}\n\nexport async function getManagedOID4VCIssuerIdentifier(\n opts: ManagedIdentifierOID4VCIssuerOpts,\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierOID4VCIssuerResult> {\n const { identifier } = opts\n const method = 'oid4vci-issuer'\n // FIXME: We need to eventually determine the JWK based on the issuer. Using a dummy JWK for now\n const jwk = {\n kty: 'RSA',\n kid: 'dummy-jwk-for-vci-issuer-signing',\n use: 'sig',\n n: 'pjdss8ZaDfEH6K6U7GeW2nxDqR4IP049fk1fK0lndimbMMVBdPv_hSpm8T8EtBDxrUdi1OHZfMhUixGaut-3nQ4GG9nM249oxhCtxqqNvEXrmQRGqczyLxuh-fKn9Fg--hS9UpazHpfVAFnB5aCfXoNhPuI8oByyFKMKaOVgHNqP5NBEqabiLftZD3W_lsFCPGuzr4Vp0YS7zS2hDYScC2oOMu4rGU1LcMZf39p3153Cq7bS2Xh6Y-vw5pwzFYZdjQxDn8x8BG3fJ6j8TGLXQsbKH1218_HcUJRvMwdpbUQG5nvA2GXVqLqdwp054Lzk9_B_f1lVrmOKuHjTNHq48w',\n e: 'AQAB',\n d: 'ksDmucdMJXkFGZxiomNHnroOZxe8AmDLDGO1vhs-POa5PZM7mtUPonxwjVmthmpbZzla-kg55OFfO7YcXhg-Hm2OWTKwm73_rLh3JavaHjvBqsVKuorX3V3RYkSro6HyYIzFJ1Ek7sLxbjDRcDOj4ievSX0oN9l-JZhaDYlPlci5uJsoqro_YrE0PRRWVhtGynd-_aWgQv1YzkfZuMD-hJtDi1Im2humOWxA4eZrFs9eG-whXcOvaSwO4sSGbS99ecQZHM2TcdXeAs1PvjVgQ_dKnZlGN3lTWoWfQP55Z7Tgt8Nf1q4ZAKd-NlMe-7iqCFfsnFwXjSiaOa2CRGZn-Q',\n p: '4A5nU4ahEww7B65yuzmGeCUUi8ikWzv1C81pSyUKvKzu8CX41hp9J6oRaLGesKImYiuVQK47FhZ--wwfpRwHvSxtNU9qXb8ewo-BvadyO1eVrIk4tNV543QlSe7pQAoJGkxCia5rfznAE3InKF4JvIlchyqs0RQ8wx7lULqwnn0',\n q: 'ven83GM6SfrmO-TBHbjTk6JhP_3CMsIvmSdo4KrbQNvp4vHO3w1_0zJ3URkmkYGhz2tgPlfd7v1l2I6QkIh4Bumdj6FyFZEBpxjE4MpfdNVcNINvVj87cLyTRmIcaGxmfylY7QErP8GFA-k4UoH_eQmGKGK44TRzYj5hZYGWIC8',\n dp: 'lmmU_AG5SGxBhJqb8wxfNXDPJjf__i92BgJT2Vp4pskBbr5PGoyV0HbfUQVMnw977RONEurkR6O6gxZUeCclGt4kQlGZ-m0_XSWx13v9t9DIbheAtgVJ2mQyVDvK4m7aRYlEceFh0PsX8vYDS5o1txgPwb3oXkPTtrmbAGMUBpE',\n dq: 'mxRTU3QDyR2EnCv0Nl0TCF90oliJGAHR9HJmBe__EjuCBbwHfcT8OG3hWOv8vpzokQPRl5cQt3NckzX3fs6xlJN4Ai2Hh2zduKFVQ2p-AF2p6Yfahscjtq-GY9cB85NxLy2IXCC0PF--Sq9LOrTE9QV988SJy_yUrAjcZ5MmECk',\n qi: 'ldHXIrEmMZVaNwGzDF9WG8sHj2mOZmQpw9yrjLK9hAsmsNr5LTyqWAqJIYZSwPTYWhY4nu2O0EY9G9uYiqewXfCKw_UngrJt8Xwfq1Zruz0YY869zPN4GiE9-9rzdZB33RBw8kIOquY3MK74FMwCihYx_LiU2YTHkaoJ3ncvtvg',\n } as JWK\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n\n const key = {\n kid: 'dummy-key-for-vci-issuer-signing',\n kms: 'local',\n type: 'RSA',\n publicKeyHex: '9a3f75b2e4d8b91128fc6e9a8f6782e5a4f1cba3718e58b5d0a789d6e5f52b3a',\n } as IKey\n\n return {\n method,\n identifier,\n jwk,\n jwkThumbprint,\n key, // FIXME: We need construct a key as soon as we have the external VCI Issuer resolution\n kmsKeyRef: identifier, // FIXME: We need use kmsKeyRef as soon as we have the external VCI Issuer resolution\n issuer: identifier.replace('/.well-known/openid-credential-issuer', ''),\n clientId: opts.clientId,\n clientIdScheme: opts.clientIdScheme,\n opts,\n } satisfies ManagedIdentifierOID4VCIssuerResult\n}\n\nexport async function getManagedIdentifier(\n opts: ManagedIdentifierOptsOrResult & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<IKeyManager>,\n): Promise<ManagedIdentifierResult> {\n let resolutionResult: ManagedIdentifierResult\n if (isManagedIdentifierResult(opts)) {\n opts\n }\n if (isManagedIdentifierKidOpts(opts)) {\n resolutionResult = await getManagedKidIdentifier(opts, context)\n } else if (isManagedIdentifierDidOpts(opts)) {\n resolutionResult = await getManagedDidIdentifier(opts, context)\n } else if (isManagedIdentifierJwkOpts(opts)) {\n resolutionResult = await getManagedJwkIdentifier(opts, context)\n } else if (isManagedIdentifierX5cOpts(opts)) {\n resolutionResult = await getManagedX5cIdentifier(opts, context)\n } else if (isManagedIdentifierKeyOpts(opts)) {\n resolutionResult = await getManagedKeyIdentifier(opts, context)\n } else if (isManagedIdentifierCoseKeyOpts(opts)) {\n resolutionResult = await getManagedCoseKeyIdentifier(opts, context)\n } else if (isManagedIdentifierOID4VCIssuerOpts(opts)) {\n resolutionResult = await getManagedOID4VCIssuerIdentifier(opts, context)\n } else {\n return Promise.reject(Error(`Could not determine identifier method. Please provide explicitly`))\n }\n const { key } = resolutionResult\n if (\n (!key && !isManagedIdentifierOID4VCIssuerOpts(opts)) ||\n (isManagedIdentifierDidOpts(opts) && isManagedIdentifierDidResult(resolutionResult) && !resolutionResult.identifier)\n ) {\n console.log(`Cannot find identifier`, opts.identifier)\n return Promise.reject(`Cannot find identifier ${opts.identifier}`)\n }\n return resolutionResult\n}\n\nexport async function managedIdentifierToKeyResult(\n identifier: ManagedIdentifierOptsOrResult,\n context: IAgentContext<IIdentifierResolution & IKeyManager>,\n): Promise<ManagedIdentifierKeyResult> {\n const resolved = await ensureManagedIdentifierResult(identifier, context)\n if (isManagedIdentifierKeyResult(resolved)) {\n return resolved\n }\n\n return {\n ...resolved,\n method: 'key',\n identifier: resolved.key,\n } satisfies ManagedIdentifierKeyResult\n}\n\nexport async function managedIdentifierToJwk(\n identifier: ManagedIdentifierOptsOrResult,\n context: IAgentContext<IIdentifierResolution & IKeyManager>,\n): Promise<ManagedIdentifierJwkResult> {\n const resolved = await ensureManagedIdentifierResult(identifier, context)\n if (isManagedIdentifierJwkResult(resolved)) {\n return resolved\n }\n return {\n ...resolved,\n method: 'jwk',\n identifier: resolved.jwk,\n } satisfies ManagedIdentifierJwkResult\n}\n","import { didDocumentToJwks, getAgentResolver, jwkTtoPublicKeyHex } from '@sphereon/ssi-sdk-ext.did-utils'\nimport { calculateJwkThumbprint, coseKeyToJwk, globalCrypto } from '@sphereon/ssi-sdk-ext.key-utils'\nimport {\n getSubjectDN,\n pemOrDerToX509Certificate,\n PEMToDer,\n validateX509CertificateChain,\n type X509ValidationResult,\n} from '@sphereon/ssi-sdk-ext.x509-utils'\nimport { contextHasPlugin } from '@sphereon/ssi-sdk.agent-config'\nimport { type IParsedDID, type JWK, parseDid } from '@sphereon/ssi-types'\nimport type { IAgentContext, IDIDManager, IResolver } from '@veramo/core'\nimport { isDefined } from '@veramo/utils'\nimport { CryptoEngine, setEngine } from 'pkijs'\nimport type {\n ExternalIdentifierCoseKeyOpts,\n ExternalIdentifierCoseKeyResult,\n ExternalIdentifierDidOpts,\n ExternalIdentifierDidResult,\n ExternalIdentifierJwkOpts,\n ExternalIdentifierJwkResult,\n ExternalIdentifierMethod,\n ExternalIdentifierOpts,\n ExternalIdentifierResult,\n ExternalIdentifierX5cOpts,\n ExternalIdentifierX5cResult,\n ExternalJwkInfo,\n} from '../types'\nimport {\n isExternalIdentifierCoseKeyOpts,\n isExternalIdentifierDidOpts,\n isExternalIdentifierJwkOpts,\n isExternalIdentifierJwksUrlOpts,\n isExternalIdentifierKidOpts,\n isExternalIdentifierOidcDiscoveryOpts,\n isExternalIdentifierOIDFEntityIdOpts,\n isExternalIdentifierX5cOpts,\n} from '../types'\nimport { resolveExternalOIDFEntityIdIdentifier } from '.'\n\nimport { webcrypto } from 'node:crypto'\nexport async function resolveExternalIdentifier(\n opts: ExternalIdentifierOpts & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<any>,\n): Promise<ExternalIdentifierResult> {\n let method: ExternalIdentifierMethod | undefined\n if (isExternalIdentifierDidOpts(opts)) {\n return resolveExternalDidIdentifier(opts, context)\n } else if (isExternalIdentifierX5cOpts(opts)) {\n return resolveExternalX5cIdentifier(opts, context)\n } else if (isExternalIdentifierJwkOpts(opts)) {\n return resolveExternalJwkIdentifier(opts, context)\n } else if (isExternalIdentifierCoseKeyOpts(opts)) {\n return resolveExternalCoseKeyIdentifier(opts, context)\n } else if (isExternalIdentifierOIDFEntityIdOpts(opts)) {\n return resolveExternalOIDFEntityIdIdentifier(opts, context)\n } else if (isExternalIdentifierKidOpts(opts)) {\n method = 'kid'\n } else if (isExternalIdentifierJwksUrlOpts(opts)) {\n method = 'jwks-url'\n } else if (isExternalIdentifierOidcDiscoveryOpts(opts)) {\n method = 'oidc-discovery'\n }\n throw Error(`External resolution method ${method} is not yet implemented`)\n}\n\nexport async function resolveExternalX5cIdentifier(\n opts: ExternalIdentifierX5cOpts & {\n crypto?: webcrypto.Crypto\n },\n context: IAgentContext<IResolver & IDIDManager>,\n): Promise<ExternalIdentifierX5cResult> {\n if (!isExternalIdentifierX5cOpts(opts)) {\n return Promise.reject('External x5c Identifier args need to be provided')\n }\n const verify = opts.verify ?? true\n const x5c = opts.identifier.map((derOrPem) => (derOrPem.includes('CERTIFICATE') ? PEMToDer(derOrPem) : derOrPem))\n if (x5c.length === 0) {\n return Promise.reject('Empty certification chain is not allowed')\n }\n const certificates = x5c.map(pemOrDerToX509Certificate)\n\n let verificationResult: X509ValidationResult | undefined\n let issuerJWK: JWK | undefined\n let jwks: ExternalJwkInfo[] = []\n\n if (verify) {\n // We use the agent plugin if it is available as that is more powerful, but revert to the function otherwise\n if (contextHasPlugin(context, 'verifyCertificateChain')) {\n verificationResult = (await context.agent.verifyCertificateChain({\n chain: opts.identifier,\n trustAnchors: opts.trustAnchors ?? [],\n verificationTime: opts.verificationTime,\n })) as X509ValidationResult // We need to cast, as we know this is the value and we do not want to rely on the x509 plugin perse\n } else {\n verificationResult = await validateX509CertificateChain({\n chain: opts.identifier,\n trustAnchors: opts.trustAnchors ?? [],\n verificationTime: opts.verificationTime,\n opts,\n })\n }\n if (verificationResult.certificateChain) {\n jwks = verificationResult.certificateChain.map((cert) => {\n return {\n jwk: cert.publicKeyJWK,\n kid: cert.subject.dn.DN,\n jwkThumbprint: calculateJwkThumbprint({ jwk: cert.publicKeyJWK }),\n publicKeyHex: jwkTtoPublicKeyHex(cert.publicKeyJWK),\n } satisfies ExternalJwkInfo\n })\n }\n }\n if (!jwks || jwks.length === 0) {\n const cryptoEngine = new CryptoEngine({\n name: 'identifier_resolver_external',\n crypto: globalCrypto(false, opts.crypto),\n })\n setEngine(cryptoEngine.name, cryptoEngine)\n jwks = await Promise.all(\n certificates.map(async (cert) => {\n const pk = await cert.getPublicKey(undefined, cryptoEngine)\n const jwk = (await cryptoEngine.exportKey('jwk', pk)) as JWK\n return {\n jwk,\n kid: getSubjectDN(cert).DN,\n jwkThumbprint: calculateJwkThumbprint({ jwk }),\n publicKeyHex: jwkTtoPublicKeyHex(jwk),\n } satisfies ExternalJwkInfo\n }),\n )\n }\n if (jwks.length === 0) {\n return Promise.reject('Empty certification chain is now allowed')\n }\n if (!issuerJWK) {\n issuerJWK = jwks[0].jwk\n }\n\n return {\n method: 'x5c',\n verificationResult,\n issuerJWK,\n jwks,\n certificates,\n x5c,\n }\n}\n\n/**\n * Resolves a JWK. Normally this is just returning the JWK, but in case the JWK contains a x5c the chain is validated\n * @param opts\n * @param context\n */\nexport async function resolveExternalJwkIdentifier(\n opts: ExternalIdentifierJwkOpts & {\n x5c?: ExternalIdentifierX5cOpts\n },\n context: IAgentContext<any>,\n): Promise<ExternalIdentifierJwkResult> {\n if (!isExternalIdentifierJwkOpts(opts)) {\n return Promise.reject('External JWK Identifier args need to be provided')\n }\n const jwk = opts.identifier\n let x5c: ExternalIdentifierX5cResult | undefined = undefined\n if (jwk.x5c) {\n x5c = await resolveExternalX5cIdentifier({ ...opts.x5c, identifier: jwk.x5c }, context)\n }\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n return {\n method: 'jwk',\n jwk,\n jwks: [\n {\n jwk,\n jwkThumbprint,\n kid: jwk.kid,\n publicKeyHex: jwkTtoPublicKeyHex(jwk),\n },\n ],\n x5c,\n } satisfies ExternalIdentifierJwkResult\n}\n\n/**\n * Resolves a JWK. Normally this is just returning the JWK, but in case the JWK contains a x5c the chain is validated\n * @param opts\n * @param context\n */\nexport async function resolveExternalCoseKeyIdentifier(\n opts: ExternalIdentifierCoseKeyOpts & {\n x5c?: ExternalIdentifierX5cOpts\n },\n context: IAgentContext<any>,\n): Promise<ExternalIdentifierCoseKeyResult> {\n if (!isExternalIdentifierCoseKeyOpts(opts)) {\n return Promise.reject('External Cose Key args need to be provided')\n }\n // TODO: We need to do cbor conversion here as well.\n const coseKey = opts.identifier\n let x5c: ExternalIdentifierX5cResult | undefined = undefined\n if (coseKey.x5chain) {\n x5c = await resolveExternalX5cIdentifier({ ...opts.x5c, identifier: coseKey.x5chain }, context)\n }\n const jwk = coseKeyToJwk(coseKey)\n const jwkThumbprint = calculateJwkThumbprint({ jwk })\n return {\n method: 'cose_key',\n coseKey,\n jwks: [\n {\n jwk,\n jwkThumbprint,\n kid: coseKey.kid,\n publicKeyHex: jwkTtoPublicKeyHex(jwk),\n },\n ],\n x5c,\n } satisfies ExternalIdentifierCoseKeyResult\n}\n\nexport async function resolveExternalDidIdentifier(\n opts: ExternalIdentifierDidOpts,\n context: IAgentContext<IResolver & IDIDManager>,\n): Promise<ExternalIdentifierDidResult> {\n if (!isExternalIdentifierDidOpts(opts)) {\n return Promise.reject('External DID Identifier args need to be provided')\n } else if (!contextHasPlugin<IResolver & IDIDManager>(context, 'resolveDid')) {\n return Promise.reject(Error(`Cannot get external DID identifier if DID resolver plugin is not enabled!`))\n }\n const { uniresolverResolution = false, localResolution = true, resolverResolution = true } = opts\n const did = opts.identifier\n let parsed: IParsedDID\n try {\n parsed = parseDid(did)\n } catch (error: unknown) {\n // Error from did resolution spec\n return Promise.reject(error)\n }\n const didParsed = parsed\n const didResolutionResult = await getAgentResolver(context, {\n uniresolverResolution,\n localResolution,\n resolverResolution,\n }).resolve(did)\n const didDocument = didResolutionResult.didDocument ?? undefined\n const didJwks = didDocument ? didDocumentToJwks(didDocument) : undefined\n const jwks = didJwks\n ? Array.from(\n new Set(\n Array.from(\n Object.values(didJwks)\n .filter((jwks) => isDefined(jwks) && jwks.length > 0)\n .flatMap((jwks) => jwks),\n )\n .filter((jwk) => {\n if (!didParsed.fragment) {\n return true\n }\n const fullKid = `${didParsed.did}#${didParsed.fragment}`\n return jwk.kid === fullKid || jwk.kid === didParsed.fragment\n })\n .flatMap((jwk) => {\n return {\n jwk,\n jwkThumbprint: calculateJwkThumbprint({ jwk }),\n kid: jwk.kid,\n publicKeyHex: jwkTtoPublicKeyHex(jwk),\n }\n })\n .map((jwk) => JSON.stringify(jwk)),\n ),\n ).map((jwks) => JSON.parse(jwks))\n : []\n\n if (didResolutionResult?.didDocument) {\n // @ts-ignore // Mandatory on the original object, but we already provide it directly\n delete didResolutionResult['didDocument']\n }\n return {\n method: 'did',\n did,\n jwks,\n didJwks,\n didDocument,\n didResolutionResult,\n didParsed,\n }\n}\n","import type {\n ErrorMessage,\n ExternalIdentifierOIDFEntityIdOpts,\n ExternalIdentifierOIDFEntityIdResult,\n ExternalJwkInfo,\n IJwsValidationResult,\n JwtPayload,\n TrustedAnchor,\n} from '../types'\nimport type { IAgentContext } from '@veramo/core'\nimport type { IOIDFClient } from '@sphereon/ssi-sdk.oidf-client'\nimport { contextHasPlugin } from '@sphereon/ssi-sdk.agent-config'\n\n// @ts-ignore\nimport * as u8a from 'uint8arrays'\nconst { fromString, toString } = u8a\n/**\n * Resolves an OIDF Entity ID against multiple trust anchors to establish trusted relationships\n *\n * @param opts Configuration options containing the identifier to resolve and trust anchors to validate against\n * @param context Agent context that must include the OIDF client plugin and JWT verification capabilities\n *\n * @returns Promise resolving to an ExternalIdentifierOIDFEntityIdResult containing:\n * - trustedAnchors: Record mapping trust anchors to their public key hexes\n * - errorList: Optional record of errors encountered per trust anchor\n * - jwks: Array of JWK information from the trust chain\n * - trustEstablished: Boolean indicating if any trust relationships were established\n *\n * @throws Error if trust anchors are missing or JWT verification plugin is not enabled\n */\nexport async function resolveExternalOIDFEntityIdIdentifier(\n opts: ExternalIdentifierOIDFEntityIdOpts,\n context: IAgentContext<IOIDFClient>,\n): Promise<ExternalIdentifierOIDFEntityIdResult> {\n let { trustAnchors, identifier } = opts\n\n if (!trustAnchors || trustAnchors.length === 0) {\n return Promise.reject(Error('ExternalIdentifierOIDFEntityIdOpts is missing the trustAnchors'))\n }\n\n if (!contextHasPlugin(context, 'jwtVerifyJwsSignature')) {\n return Promise.reject(Error('For OIDFEntityId resolving the agent needs to have the JwtService plugin enabled'))\n }\n\n const trustedAnchors: Set<TrustedAnchor> = new Set<TrustedAnchor>()\n const errorList: Record<TrustedAnchor, ErrorMessage> = {}\n const jwkInfos: Array<ExternalJwkInfo> = []\n\n let payload: JwtPayload | undefined\n for (const trustAnchor of trustAnchors) {\n const resolveResult = await context.agent.resolveTrustChain({\n entityIdentifier: identifier,\n trustAnchors: [trustAnchor],\n })\n\n if (resolveResult.errorMessage || !resolveResult.trustChain) {\n errorList[trustAnchor] = resolveResult.errorMessage ?? 'unspecified'\n } else {\n const trustChain = resolveResult.trustChain\n if (trustChain.length === 0) {\n errorList[trustAnchor] = 'Trust chain is empty'\n continue\n }\n\n const jwt = trustChain[0]\n const jwtVerifyResult: IJwsValidationResult = await context.agent.jwtVerifyJwsSignature({ jws: jwt })\n\n if (jwtVerifyResult.error || jwtVerifyResult.critical) {\n errorList[trustAnchor] = jwtVerifyResult.message\n continue\n }\n\n if (jwtVerifyResult.jws.signatures.length === 0) {\n errorList[trustAnchor] = 'No signature was present in the trust anchor JWS'\n continue\n }\n\n payload = JSON.parse(toString(fromString(jwtVerifyResult.jws.payload, 'base64url')))\n const signature = jwtVerifyResult.jws.signatures[0]\n if (signature.identifier.jwks.length === 0) {\n errorList[trustAnchor] = 'No JWK was present in the trust anchor signature'\n continue\n }\n\n if (jwkInfos.length === 0) {\n // We need the entity JWK only once\n jwkInfos.push(...signature.identifier.jwks)\n }\n trustedAnchors.add(trustAnchor)\n }\n }\n\n return {\n method: 'entity_id',\n trustedAnchors: Array.from(trustedAnchors),\n ...(Object.keys(errorList).length > 0 && { errorList }),\n jwks: jwkInfos,\n jwtPayload: payload,\n trustEstablished: trustedAnchors.size > 0,\n }\n}\n","import type { IIdentifier } from '@veramo/core'\nimport type { ManagedIdentifierDidOpts, ManagedIdentifierOptsOrResult } from '../types'\n\n/**\n * Converts legacy id opts key refs to the new ManagedIdentifierOpts\n * @param opts\n */\nexport function legacyKeyRefsToIdentifierOpts(opts: {\n idOpts?: ManagedIdentifierOptsOrResult\n iss?: string\n keyRef?: string\n didOpts?: any\n}): ManagedIdentifierOptsOrResult {\n if (!opts.idOpts) {\n console.warn(\n `Legacy idOpts being used. Support will be dropped in the future. Consider switching to the idOpts, to have support for DIDs, JWKS, x5c etc. See https://github.com/Sphereon-Opensource/SSI-SDK-crypto-extensions/tree/feature/multi_identifier_support/packages/identifier-resolution`,\n )\n // legacy way\n let kmsKeyRef =\n opts.keyRef ??\n opts.didOpts?.idOpts?.kmsKeyRef ??\n opts.didOpts?.kid ??\n opts.didOpts?.idOpts?.kid ??\n (typeof opts.didOpts?.idOpts?.identifier === 'object' ? (opts.didOpts.idOpts.identifier as IIdentifier).keys[0].kid : undefined)\n if (!kmsKeyRef) {\n throw Error('Key ref is needed for access token signer')\n }\n let identifier = (opts.didOpts?.identifier ?? opts.didOpts?.idOpts?.identifier) as IIdentifier | undefined\n\n return {\n kmsKeyRef: opts.keyRef ?? kmsKeyRef,\n identifier: identifier ?? kmsKeyRef,\n issuer: opts.iss,\n } satisfies ManagedIdentifierDidOpts\n } else {\n const idOpts = opts.idOpts\n if (opts.keyRef && !idOpts.kmsKeyRef) {\n // legacy way\n console.warn(\n `Legacy keyRef being used. Support will be dropped in the future. Consider switching to the idOpts, to have support for DIDs, JWKS, x5c etc. See https://github.com/Sphereon-Opensource/SSI-SDK-crypto-extensions/tree/feature/multi_identifier_support/packages/identifier-resolution`,\n )\n idOpts.kmsKeyRef = opts.keyRef\n }\n if (opts.iss && !idOpts.issuer) {\n // legacy way\n console.warn(\n `Legacy iss being used. Support will be dropped in the future. Consider switching to the idOpts, to have support for DIDs, JWKS, x5c etc. See https://github.com/Sphereon-Opensource/SSI-SDK-crypto-extensions/tree/feature/multi_identifier_support/packages/identifier-resolution`,\n )\n idOpts.issuer = opts.iss\n }\n\n return idOpts\n }\n}\n","/**\n * @internal\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\n/**\n * @public\n */\nexport * from './types'\nexport { IdentifierResolution } from './agent/IdentifierResolution'\nexport * from './functions'\n"],"mappings":"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","names":["isDidIdentifier","identifier","isIIdentifier","startsWith","Array","isArray","isJwkIdentifier","isOidcDiscoveryIdentifier","endsWith","isJwksUrlIdentifier","isKidIdentifier","isOID4VCIssuerIdentifier","isKeyIdentifier","isCoseKeyIdentifier","isOIDFEntityIdIdentifier","isX5cIdentifier","length","isExternalIdentifierDidOpts","opts","identifier","method","isDidIdentifier","isExternalIdentifierKidOpts","isKidIdentifier","isExternalIdentifierJwkOpts","isJwkIdentifier","isExternalIdentifierCoseKeyOpts","isCoseKeyIdentifier","isExternalIdentifierOidcDiscoveryOpts","isOidcDiscoveryIdentifier","isExternalIdentifierJwksUrlOpts","isJwksUrlIdentifier","isExternalIdentifierOIDFEntityIdOpts","isOIDFEntityIdIdentifier","isExternalIdentifierX5cOpts","isX5cIdentifier","isManagedIdentifierDidOpts","opts","identifier","method","isDidIdentifier","isManagedIdentifierKidOpts","isKidIdentifier","isManagedIdentifierKeyOpts","isKeyIdentifier","isManagedIdentifierCoseKeyOpts","isCoseKeyIdentifier","isManagedIdentifierOID4VCIssuerOpts","isOID4VCIssuerIdentifier","isManagedIdentifierJwkOpts","isJwkIdentifier","isManagedIdentifierX5cOpts","isX5cIdentifier","isManagedIdentifierCoseKeyResult","object","isManagedIdentifierDidResult","isManagedIdentifierX5cResult","isManagedIdentifierJwkResult","isManagedIdentifierKidResult","isManagedIdentifierKeyResult","identifierResolutionContextMethods","globalCrypto","getFirstKeyWithRelation","calculateJwkThumbprint","coseKeyToJwk","globalCrypto","toJwk","pemOrDerToX509Certificate","contextHasDidManager","contextHasKeyManager","CryptoEngine","setEngine","getManagedKidIdentifier","opts","context","method","key","undefined","issuer","kid","contextHasKeyManager","Promise","reject","Error","identifier","startsWith","did","split","didIdentifier","getManagedDidIdentifier","meta","verificationMethod","id","agent","keyManagerGet","kmsKeyRef","jwk","toJwk","publicKeyHex","type","jwkThumbprint","calculateJwkThumbprint","clientId","clientIdScheme","isManagedIdentifierResult","ensureManagedIdentifierResult","lazyDisabled","getManagedIdentifier","getManagedKeyIdentifier","_context","getManagedCoseKeyIdentifier","coseKey","coseKeyToJwk","contextHasDidManager","didManagerGet","extendedKey","getFirstKeyWithRelation","offlineWhenNoDIDRegistered","vmRelationship","hash","filteredKeys","keys","keysByKmsKeyRef","filter","k","length","keysByVmRelationship","purposes","includes","fragment","keysByFragment","vmId","controllerKeyId","filteredIdentifier","getManagedJwkIdentifier","getManagedX5cIdentifier","x5c","cryptoImpl","globalCrypto","crypto","certificate","pemOrDerToX509Certificate","cryptoEngine","CryptoEngine","name","setEngine","pk","getPublicKey","subtle","exportKey","getManagedOID4VCIssuerIdentifier","kty","use","n","e","d","p","q","dp","dq","qi","kms","replace","resolutionResult","isManagedIdentifierKidOpts","isManagedIdentifierDidOpts","isManagedIdentifierJwkOpts","isManagedIdentifierX5cOpts","isManagedIdentifierKeyOpts","isManagedIdentifierCoseKeyOpts","isManagedIdentifierOID4VCIssuerOpts","isManagedIdentifierDidResult","console","log","managedIdentifierToKeyResult","resolved","isManagedIdentifierKeyResult","managedIdentifierToJwk","isManagedIdentifierJwkResult","didDocumentToJwks","getAgentResolver","jwkTtoPublicKeyHex","calculateJwkThumbprint","coseKeyToJwk","globalCrypto","getSubjectDN","pemOrDerToX509Certificate","PEMToDer","validateX509CertificateChain","contextHasPlugin","parseDid","isDefined","CryptoEngine","setEngine","resolveExternalIdentifier","opts","context","method","isExternalIdentifierDidOpts","resolveExternalDidIdentifier","isExternalIdentifierX5cOpts","resolveExternalX5cIdentifier","isExternalIdentifierJwkOpts","resolveExternalJwkIdentifier","isExternalIdentifierCoseKeyOpts","resolveExternalCoseKeyIdentifier","isExternalIdentifierOIDFEntityIdOpts","resolveExternalOIDFEntityIdIdentifier","isExternalIdentifierKidOpts","isExternalIdentifierJwksUrlOpts","isExternalIdentifierOidcDiscoveryOpts","Error","Promise","reject","verify","x5c","identifier","map","derOrPem","includes","PEMToDer","length","certificates","pemOrDerToX509Certificate","verificationResult","issuerJWK","jwks","contextHasPlugin","agent","verifyCertificateChain","chain","trustAnchors","verificationTime","validateX509CertificateChain","certificateChain","cert","jwk","publicKeyJWK","kid","subject","dn","DN","jwkThumbprint","calculateJwkThumbprint","publicKeyHex","jwkTtoPublicKeyHex","cryptoEngine","CryptoEngine","name","crypto","globalCrypto","setEngine","all","pk","getPublicKey","undefined","exportKey","getSubjectDN","coseKey","x5chain","coseKeyToJwk","uniresolverResolution","localResolution","resolverResolution","did","parsed","parseDid","error","didParsed","didResolutionResult","getAgentResolver","resolve","didDocument","didJwks","didDocumentToJwks","Array","from","Set","Object","values","filter","isDefined","flatMap","fragment","fullKid","JSON","stringify","parse","contextHasPlugin","u8a","fromString","toString","u8a","resolveExternalOIDFEntityIdIdentifier","opts","context","trustAnchors","identifier","length","Promise","reject","Error","contextHasPlugin","trustedAnchors","Set","errorList","jwkInfos","payload","trustAnchor","resolveResult","agent","resolveTrustChain","entityIdentifier","errorMessage","trustChain","jwt","jwtVerifyResult","jwtVerifyJwsSignature","jws","error","critical","message","signatures","JSON","parse","signature","jwks","push","add","method","Array","from","Object","keys","jwtPayload","trustEstablished","size","legacyKeyRefsToIdentifierOpts","opts","idOpts","console","warn","kmsKeyRef","keyRef","didOpts","kid","identifier","keys","undefined","Error","issuer","iss","IdentifierResolution","_crypto","schema","IMnemonicInfoGenerator","methods","identifierManagedGet","bind","identifierManagedGetByDid","identifierManagedGetByKid","identifierManagedGetByJwk","identifierManagedGetByX5c","identifierManagedGetByKey","identifierManagedGetByCoseKey","identifierManagedGetByOID4VCIssuer","identifierExternalResolve","identifierExternalResolveByDid","identifierExternalResolveByX5c","identifierExternalResolveByJwk","identifierExternalResolveByCoseKey","identifierExternalResolveByOIDFEntityId","opts","globalCrypto","crypto","args","context","ensureManagedIdentifierResult","method","resolveExternalIdentifier","schema","require"]}