{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../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"],"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-36208-36933-.ts-0-64696[]>\"\n        },\n        \"Record<Exclude<DIDDocumentSection,(\\\"publicKey\\\"|\\\"service\\\")>,def-interface-.ts-36208-36933-.ts-0-64696[]>\": {\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}","/**\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","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 ?? extendedKey.kid\n  if (kid && !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  // Use a flag to track if we have successfully applied a specific filter\n  let isFiltered = false\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      isFiltered = true\n    }\n  }\n\n  // no match or kmsKeyRef not supplied, try vmRelationship\n  if (!isFiltered && 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      isFiltered = true\n    }\n  }\n\n  //no match, try to filter by fragment from opts.identifier (if it's a string with fragment)\n  if (!isFiltered && 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  // Use the filtered keys (or 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  if (isManagedIdentifierResult(opts)) {\n    return opts\n  }\n  let resolutionResult: ManagedIdentifierResult\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"],"mappings":"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","names":["module","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","import_ssi_sdk_ext","import_ssi_sdk_ext","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","isFiltered","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","import_ssi_sdk_ext","import_ssi_sdk","import_pkijs","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","import_ssi_sdk","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"]}