@sphereon/ssi-sdk-ext.did-provider-jwk 0.34.1-next.91 → 0.36.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -45,6 +45,7 @@ var import_ssi_sdk_ext = require("@sphereon/ssi-sdk-ext.key-utils");
45
45
  var import_did_manager = require("@veramo/did-manager");
46
46
  var import_base64url = __toESM(require("base64url"), 1);
47
47
  var import_debug = __toESM(require("debug"), 1);
48
+ var PROVIDER_NAME = "JWK DID Provider";
48
49
  var debug = (0, import_debug.default)("sphereon:did-provider-jwk");
49
50
  var JwkDIDProvider = class extends import_did_manager.AbstractIdentifierProvider {
50
51
  static {
@@ -58,6 +59,7 @@ var JwkDIDProvider = class extends import_did_manager.AbstractIdentifierProvider
58
59
  /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerCreate} */
59
60
  async createIdentifier(args, context) {
60
61
  const key = await (0, import_ssi_sdk_ext.importProvidedOrGeneratedKey)({
62
+ providerName: PROVIDER_NAME,
61
63
  // @ts-ignore
62
64
  kms: args.kms ?? this.defaultKms,
63
65
  alias: args.alias,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/jwk-did-provider.ts","../src/types/jwk-provider-types.ts"],"sourcesContent":["/**\n * Provides `did:jwk` {@link @veramo/did-provider-jwk#JwkDIDProvider | identifier provider }\n * for the {@link @veramo/did-manager#DIDManager}\n *\n * @packageDocumentation\n */\nexport { JwkDIDProvider } from './jwk-did-provider'\nexport * from './types/jwk-provider-types'\n","import { importProvidedOrGeneratedKey, jwkDetermineUse, toJwk } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { DIDDocument, IAgentContext, IIdentifier, IKeyManager } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\nimport base64url from 'base64url'\nimport Debug from 'debug'\nimport { IAddKeyArgs, IAddServiceArgs, ICreateIdentifierArgs, IRemoveKeyArgs, IRequiredContext } from './types/jwk-provider-types'\nimport { JsonWebKey } from '@sphereon/ssi-types'\n\nconst debug = Debug('sphereon:did-provider-jwk')\n\n/**\n * {@link @veramo/did-manager#DIDManager} identifier provider for `did:ion` identifiers\n * @public\n */\nexport class JwkDIDProvider extends AbstractIdentifierProvider {\n private readonly defaultKms?: string\n\n constructor(options: { defaultKms?: string }) {\n super()\n this.defaultKms = options.defaultKms\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerCreate} */\n async createIdentifier(args: ICreateIdentifierArgs, context: IRequiredContext): Promise<Omit<IIdentifier, 'provider'>> {\n const key = await importProvidedOrGeneratedKey(\n {\n // @ts-ignore\n kms: args.kms ?? this.defaultKms,\n alias: args.alias,\n options: args.options,\n },\n context\n )\n\n const use = jwkDetermineUse(key.type, args?.options?.use)\n const jwk: JsonWebKey = toJwk(key.publicKeyHex, key.type, { use, key, noKidThumbprint: true })\n debug(JSON.stringify(jwk, null, 2))\n const did = `did:jwk:${base64url(JSON.stringify(jwk))}`\n const identifier: Omit<IIdentifier, 'provider'> = {\n did,\n controllerKeyId: `${did}#0`,\n keys: [key],\n services: [],\n }\n\n debug('Created DID: ', identifier.did)\n return identifier\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerUpdate} */\n async updateIdentifier?(\n args: { did: string; document: Partial<DIDDocument>; options?: { [x: string]: any } },\n context: IAgentContext<IKeyManager>\n ): Promise<IIdentifier> {\n throw new Error('not implemented yet')\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerDelete} */\n async deleteIdentifier(identifier: IIdentifier, context: IRequiredContext): Promise<boolean> {\n // JWKs are entirely in memory constructs, without on chain support. Veramo can store them in the did store, but that is not the responsibility of the DID provider itself.\n return true\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerAddKey} */\n async addKey(args: IAddKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerRemoveKey} */\n async removeKey(args: IRemoveKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerAddService} */\n async addService(args: IAddServiceArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerRemoveService} */\n async removeService(args: IRemoveKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n}\n","import { IKeyOpts } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\n\nexport interface ICreateIdentifierArgs {\n kms?: string\n alias?: string\n options?: IKeyOpts\n}\n\nexport interface IAddKeyArgs {\n identifier: IIdentifier\n key: IKey\n options?: any\n}\n\nexport interface IRemoveKeyArgs {\n identifier: IIdentifier\n id: string\n options?: any\n}\n\nexport interface IRemoveKeyArgs {\n identifier: IIdentifier\n kid: string\n options?: any\n}\n\nexport interface IAddServiceArgs {\n identifier: IIdentifier\n service: IService\n options?: any\n}\n\nexport enum Key {\n Ed25519 = 'Ed25519',\n Secp256k1 = 'Secp256k1',\n Secp256r1 = 'Secp256r1',\n}\nexport enum KeyCurve {\n Secp256k1 = 'secp256k1',\n P_256 = 'P-256',\n Ed25519 = 'Ed25519',\n}\n\nexport enum KeyType {\n EC = 'EC',\n OKP = 'OKP',\n}\n\nexport const SIG_KEY_ALGS = ['ES256', 'ES384', 'ES512', 'EdDSA', 'ES256K', 'Ed25519', 'Secp256k1', 'Secp256r1', 'Bls12381G1', 'Bls12381G2']\nexport const ENC_KEY_ALGS = ['X25519', 'ECDH_ES_A256KW', 'RSA_OAEP_256']\n\nexport type IRequiredContext = IAgentContext<IKeyManager>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;ACAA,yBAAqE;AAErE,yBAA2C;AAC3C,uBAAsB;AACtB,mBAAkB;AAIlB,IAAMA,YAAQC,aAAAA,SAAM,2BAAA;AAMb,IAAMC,iBAAN,cAA6BC,8CAAAA;EAdpC,OAcoCA;;;EACjBC;EAEjB,YAAYC,SAAkC;AAC5C,UAAK;AACL,SAAKD,aAAaC,QAAQD;EAC5B;;EAGA,MAAME,iBAAiBC,MAA6BC,SAAmE;AACrH,UAAMC,MAAM,UAAMC,iDAChB;;MAEEC,KAAKJ,KAAKI,OAAO,KAAKP;MACtBQ,OAAOL,KAAKK;MACZP,SAASE,KAAKF;IAChB,GACAG,OAAAA;AAGF,UAAMK,UAAMC,oCAAgBL,IAAIM,MAAMR,MAAMF,SAASQ,GAAAA;AACrD,UAAMG,UAAkBC,0BAAMR,IAAIS,cAAcT,IAAIM,MAAM;MAAEF;MAAKJ;MAAKU,iBAAiB;IAAK,CAAA;AAC5FnB,UAAMoB,KAAKC,UAAUL,KAAK,MAAM,CAAA,CAAA;AAChC,UAAMM,MAAM,eAAWC,iBAAAA,SAAUH,KAAKC,UAAUL,GAAAA,CAAAA,CAAAA;AAChD,UAAMQ,aAA4C;MAChDF;MACAG,iBAAiB,GAAGH,GAAAA;MACpBI,MAAM;QAACjB;;MACPkB,UAAU,CAAA;IACZ;AAEA3B,UAAM,iBAAiBwB,WAAWF,GAAG;AACrC,WAAOE;EACT;;EAGA,MAAMI,iBACJrB,MACAC,SACsB;AACtB,UAAM,IAAIqB,MAAM,qBAAA;EAClB;;EAGA,MAAMC,iBAAiBN,YAAyBhB,SAA6C;AAE3F,WAAO;EACT;;EAGA,MAAMuB,OAAOxB,MAAmBC,SAAyC;AACvE,WAAOwB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMK,UAAU3B,MAAsBC,SAAyC;AAC7E,WAAOwB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMM,WAAW5B,MAAuBC,SAAyC;AAC/E,WAAOwB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMO,cAAc7B,MAAsBC,SAAyC;AACjF,WAAOwB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;AACF;;;ACjDO,IAAKQ,MAAAA,0BAAAA,MAAAA;;;;SAAAA;;AAKL,IAAKC,WAAAA,0BAAAA,WAAAA;;;;SAAAA;;AAML,IAAKC,UAAAA,0BAAAA,UAAAA;;;SAAAA;;AAKL,IAAMC,eAAe;EAAC;EAAS;EAAS;EAAS;EAAS;EAAU;EAAW;EAAa;EAAa;EAAc;;AACvH,IAAMC,eAAe;EAAC;EAAU;EAAkB;;","names":["debug","Debug","JwkDIDProvider","AbstractIdentifierProvider","defaultKms","options","createIdentifier","args","context","key","importProvidedOrGeneratedKey","kms","alias","use","jwkDetermineUse","type","jwk","toJwk","publicKeyHex","noKidThumbprint","JSON","stringify","did","base64url","identifier","controllerKeyId","keys","services","updateIdentifier","Error","deleteIdentifier","addKey","Promise","reject","removeKey","addService","removeService","Key","KeyCurve","KeyType","SIG_KEY_ALGS","ENC_KEY_ALGS"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/jwk-did-provider.ts","../src/types/jwk-provider-types.ts"],"sourcesContent":["/**\n * Provides `did:jwk` {@link @veramo/did-provider-jwk#JwkDIDProvider | identifier provider }\n * for the {@link @veramo/did-manager#DIDManager}\n *\n * @packageDocumentation\n */\nexport { JwkDIDProvider } from './jwk-did-provider'\nexport * from './types/jwk-provider-types'\n","import { importProvidedOrGeneratedKey, jwkDetermineUse, toJwk } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { DIDDocument, IAgentContext, IIdentifier, IKeyManager } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\nimport base64url from 'base64url'\nimport Debug from 'debug'\nimport { IAddKeyArgs, IAddServiceArgs, ICreateIdentifierArgs, IRemoveKeyArgs, IRequiredContext } from './types/jwk-provider-types'\nimport { JsonWebKey } from '@sphereon/ssi-types'\n\nconst PROVIDER_NAME = 'JWK DID Provider'\n\nconst debug = Debug('sphereon:did-provider-jwk')\n\n/**\n * {@link @veramo/did-manager#DIDManager} identifier provider for `did:ion` identifiers\n * @public\n */\nexport class JwkDIDProvider extends AbstractIdentifierProvider {\n private readonly defaultKms?: string\n\n constructor(options: { defaultKms?: string }) {\n super()\n this.defaultKms = options.defaultKms\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerCreate} */\n async createIdentifier(args: ICreateIdentifierArgs, context: IRequiredContext): Promise<Omit<IIdentifier, 'provider'>> {\n const key = await importProvidedOrGeneratedKey(\n {\n providerName: PROVIDER_NAME,\n // @ts-ignore\n kms: args.kms ?? this.defaultKms,\n alias: args.alias,\n options: args.options,\n },\n context,\n )\n\n const use = jwkDetermineUse(key.type, args?.options?.use)\n const jwk: JsonWebKey = toJwk(key.publicKeyHex, key.type, { use, key, noKidThumbprint: true })\n debug(JSON.stringify(jwk, null, 2))\n const did = `did:jwk:${base64url(JSON.stringify(jwk))}`\n const identifier: Omit<IIdentifier, 'provider'> = {\n did,\n controllerKeyId: `${did}#0`,\n keys: [key],\n services: [],\n }\n\n debug('Created DID: ', identifier.did)\n return identifier\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerUpdate} */\n async updateIdentifier?(\n args: { did: string; document: Partial<DIDDocument>; options?: { [x: string]: any } },\n context: IAgentContext<IKeyManager>,\n ): Promise<IIdentifier> {\n throw new Error('not implemented yet')\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerDelete} */\n async deleteIdentifier(identifier: IIdentifier, context: IRequiredContext): Promise<boolean> {\n // JWKs are entirely in memory constructs, without on chain support. Veramo can store them in the did store, but that is not the responsibility of the DID provider itself.\n return true\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerAddKey} */\n async addKey(args: IAddKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerRemoveKey} */\n async removeKey(args: IRemoveKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerAddService} */\n async addService(args: IAddServiceArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerRemoveService} */\n async removeService(args: IRemoveKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n}\n","import { IKeyOpts } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\n\nexport interface ICreateIdentifierArgs {\n kms?: string\n alias?: string\n options?: IKeyOpts\n}\n\nexport interface IAddKeyArgs {\n identifier: IIdentifier\n key: IKey\n options?: any\n}\n\nexport interface IRemoveKeyArgs {\n identifier: IIdentifier\n id: string\n options?: any\n}\n\nexport interface IRemoveKeyArgs {\n identifier: IIdentifier\n kid: string\n options?: any\n}\n\nexport interface IAddServiceArgs {\n identifier: IIdentifier\n service: IService\n options?: any\n}\n\nexport enum Key {\n Ed25519 = 'Ed25519',\n Secp256k1 = 'Secp256k1',\n Secp256r1 = 'Secp256r1',\n}\nexport enum KeyCurve {\n Secp256k1 = 'secp256k1',\n P_256 = 'P-256',\n Ed25519 = 'Ed25519',\n}\n\nexport enum KeyType {\n EC = 'EC',\n OKP = 'OKP',\n}\n\nexport const SIG_KEY_ALGS = ['ES256', 'ES384', 'ES512', 'EdDSA', 'ES256K', 'Ed25519', 'Secp256k1', 'Secp256r1', 'Bls12381G1', 'Bls12381G2']\nexport const ENC_KEY_ALGS = ['X25519', 'ECDH_ES_A256KW', 'RSA_OAEP_256']\n\nexport type IRequiredContext = IAgentContext<IKeyManager>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;ACAA,yBAAqE;AAErE,yBAA2C;AAC3C,uBAAsB;AACtB,mBAAkB;AAIlB,IAAMA,gBAAgB;AAEtB,IAAMC,YAAQC,aAAAA,SAAM,2BAAA;AAMb,IAAMC,iBAAN,cAA6BC,8CAAAA;EAhBpC,OAgBoCA;;;EACjBC;EAEjB,YAAYC,SAAkC;AAC5C,UAAK;AACL,SAAKD,aAAaC,QAAQD;EAC5B;;EAGA,MAAME,iBAAiBC,MAA6BC,SAAmE;AACrH,UAAMC,MAAM,UAAMC,iDAChB;MACEC,cAAcZ;;MAEda,KAAKL,KAAKK,OAAO,KAAKR;MACtBS,OAAON,KAAKM;MACZR,SAASE,KAAKF;IAChB,GACAG,OAAAA;AAGF,UAAMM,UAAMC,oCAAgBN,IAAIO,MAAMT,MAAMF,SAASS,GAAAA;AACrD,UAAMG,UAAkBC,0BAAMT,IAAIU,cAAcV,IAAIO,MAAM;MAAEF;MAAKL;MAAKW,iBAAiB;IAAK,CAAA;AAC5FpB,UAAMqB,KAAKC,UAAUL,KAAK,MAAM,CAAA,CAAA;AAChC,UAAMM,MAAM,eAAWC,iBAAAA,SAAUH,KAAKC,UAAUL,GAAAA,CAAAA,CAAAA;AAChD,UAAMQ,aAA4C;MAChDF;MACAG,iBAAiB,GAAGH,GAAAA;MACpBI,MAAM;QAAClB;;MACPmB,UAAU,CAAA;IACZ;AAEA5B,UAAM,iBAAiByB,WAAWF,GAAG;AACrC,WAAOE;EACT;;EAGA,MAAMI,iBACJtB,MACAC,SACsB;AACtB,UAAM,IAAIsB,MAAM,qBAAA;EAClB;;EAGA,MAAMC,iBAAiBN,YAAyBjB,SAA6C;AAE3F,WAAO;EACT;;EAGA,MAAMwB,OAAOzB,MAAmBC,SAAyC;AACvE,WAAOyB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMK,UAAU5B,MAAsBC,SAAyC;AAC7E,WAAOyB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMM,WAAW7B,MAAuBC,SAAyC;AAC/E,WAAOyB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMO,cAAc9B,MAAsBC,SAAyC;AACjF,WAAOyB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;AACF;;;ACpDO,IAAKQ,MAAAA,0BAAAA,MAAAA;;;;SAAAA;;AAKL,IAAKC,WAAAA,0BAAAA,WAAAA;;;;SAAAA;;AAML,IAAKC,UAAAA,0BAAAA,UAAAA;;;SAAAA;;AAKL,IAAMC,eAAe;EAAC;EAAS;EAAS;EAAS;EAAS;EAAU;EAAW;EAAa;EAAa;EAAc;;AACvH,IAAMC,eAAe;EAAC;EAAU;EAAkB;;","names":["PROVIDER_NAME","debug","Debug","JwkDIDProvider","AbstractIdentifierProvider","defaultKms","options","createIdentifier","args","context","key","importProvidedOrGeneratedKey","providerName","kms","alias","use","jwkDetermineUse","type","jwk","toJwk","publicKeyHex","noKidThumbprint","JSON","stringify","did","base64url","identifier","controllerKeyId","keys","services","updateIdentifier","Error","deleteIdentifier","addKey","Promise","reject","removeKey","addService","removeService","Key","KeyCurve","KeyType","SIG_KEY_ALGS","ENC_KEY_ALGS"]}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import { importProvidedOrGeneratedKey, jwkDetermineUse, toJwk } from "@sphereon/
6
6
  import { AbstractIdentifierProvider } from "@veramo/did-manager";
7
7
  import base64url from "base64url";
8
8
  import Debug from "debug";
9
+ var PROVIDER_NAME = "JWK DID Provider";
9
10
  var debug = Debug("sphereon:did-provider-jwk");
10
11
  var JwkDIDProvider = class extends AbstractIdentifierProvider {
11
12
  static {
@@ -19,6 +20,7 @@ var JwkDIDProvider = class extends AbstractIdentifierProvider {
19
20
  /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerCreate} */
20
21
  async createIdentifier(args, context) {
21
22
  const key = await importProvidedOrGeneratedKey({
23
+ providerName: PROVIDER_NAME,
22
24
  // @ts-ignore
23
25
  kms: args.kms ?? this.defaultKms,
24
26
  alias: args.alias,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/jwk-did-provider.ts","../src/types/jwk-provider-types.ts"],"sourcesContent":["import { importProvidedOrGeneratedKey, jwkDetermineUse, toJwk } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { DIDDocument, IAgentContext, IIdentifier, IKeyManager } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\nimport base64url from 'base64url'\nimport Debug from 'debug'\nimport { IAddKeyArgs, IAddServiceArgs, ICreateIdentifierArgs, IRemoveKeyArgs, IRequiredContext } from './types/jwk-provider-types'\nimport { JsonWebKey } from '@sphereon/ssi-types'\n\nconst debug = Debug('sphereon:did-provider-jwk')\n\n/**\n * {@link @veramo/did-manager#DIDManager} identifier provider for `did:ion` identifiers\n * @public\n */\nexport class JwkDIDProvider extends AbstractIdentifierProvider {\n private readonly defaultKms?: string\n\n constructor(options: { defaultKms?: string }) {\n super()\n this.defaultKms = options.defaultKms\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerCreate} */\n async createIdentifier(args: ICreateIdentifierArgs, context: IRequiredContext): Promise<Omit<IIdentifier, 'provider'>> {\n const key = await importProvidedOrGeneratedKey(\n {\n // @ts-ignore\n kms: args.kms ?? this.defaultKms,\n alias: args.alias,\n options: args.options,\n },\n context\n )\n\n const use = jwkDetermineUse(key.type, args?.options?.use)\n const jwk: JsonWebKey = toJwk(key.publicKeyHex, key.type, { use, key, noKidThumbprint: true })\n debug(JSON.stringify(jwk, null, 2))\n const did = `did:jwk:${base64url(JSON.stringify(jwk))}`\n const identifier: Omit<IIdentifier, 'provider'> = {\n did,\n controllerKeyId: `${did}#0`,\n keys: [key],\n services: [],\n }\n\n debug('Created DID: ', identifier.did)\n return identifier\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerUpdate} */\n async updateIdentifier?(\n args: { did: string; document: Partial<DIDDocument>; options?: { [x: string]: any } },\n context: IAgentContext<IKeyManager>\n ): Promise<IIdentifier> {\n throw new Error('not implemented yet')\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerDelete} */\n async deleteIdentifier(identifier: IIdentifier, context: IRequiredContext): Promise<boolean> {\n // JWKs are entirely in memory constructs, without on chain support. Veramo can store them in the did store, but that is not the responsibility of the DID provider itself.\n return true\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerAddKey} */\n async addKey(args: IAddKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerRemoveKey} */\n async removeKey(args: IRemoveKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerAddService} */\n async addService(args: IAddServiceArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerRemoveService} */\n async removeService(args: IRemoveKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n}\n","import { IKeyOpts } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\n\nexport interface ICreateIdentifierArgs {\n kms?: string\n alias?: string\n options?: IKeyOpts\n}\n\nexport interface IAddKeyArgs {\n identifier: IIdentifier\n key: IKey\n options?: any\n}\n\nexport interface IRemoveKeyArgs {\n identifier: IIdentifier\n id: string\n options?: any\n}\n\nexport interface IRemoveKeyArgs {\n identifier: IIdentifier\n kid: string\n options?: any\n}\n\nexport interface IAddServiceArgs {\n identifier: IIdentifier\n service: IService\n options?: any\n}\n\nexport enum Key {\n Ed25519 = 'Ed25519',\n Secp256k1 = 'Secp256k1',\n Secp256r1 = 'Secp256r1',\n}\nexport enum KeyCurve {\n Secp256k1 = 'secp256k1',\n P_256 = 'P-256',\n Ed25519 = 'Ed25519',\n}\n\nexport enum KeyType {\n EC = 'EC',\n OKP = 'OKP',\n}\n\nexport const SIG_KEY_ALGS = ['ES256', 'ES384', 'ES512', 'EdDSA', 'ES256K', 'Ed25519', 'Secp256k1', 'Secp256r1', 'Bls12381G1', 'Bls12381G2']\nexport const ENC_KEY_ALGS = ['X25519', 'ECDH_ES_A256KW', 'RSA_OAEP_256']\n\nexport type IRequiredContext = IAgentContext<IKeyManager>\n"],"mappings":";;;;AAAA,SAASA,8BAA8BC,iBAAiBC,aAAa;AAErE,SAASC,kCAAkC;AAC3C,OAAOC,eAAe;AACtB,OAAOC,WAAW;AAIlB,IAAMC,QAAQC,MAAM,2BAAA;AAMb,IAAMC,iBAAN,cAA6BC,2BAAAA;EAdpC,OAcoCA;;;EACjBC;EAEjB,YAAYC,SAAkC;AAC5C,UAAK;AACL,SAAKD,aAAaC,QAAQD;EAC5B;;EAGA,MAAME,iBAAiBC,MAA6BC,SAAmE;AACrH,UAAMC,MAAM,MAAMC,6BAChB;;MAEEC,KAAKJ,KAAKI,OAAO,KAAKP;MACtBQ,OAAOL,KAAKK;MACZP,SAASE,KAAKF;IAChB,GACAG,OAAAA;AAGF,UAAMK,MAAMC,gBAAgBL,IAAIM,MAAMR,MAAMF,SAASQ,GAAAA;AACrD,UAAMG,MAAkBC,MAAMR,IAAIS,cAAcT,IAAIM,MAAM;MAAEF;MAAKJ;MAAKU,iBAAiB;IAAK,CAAA;AAC5FnB,UAAMoB,KAAKC,UAAUL,KAAK,MAAM,CAAA,CAAA;AAChC,UAAMM,MAAM,WAAWC,UAAUH,KAAKC,UAAUL,GAAAA,CAAAA,CAAAA;AAChD,UAAMQ,aAA4C;MAChDF;MACAG,iBAAiB,GAAGH,GAAAA;MACpBI,MAAM;QAACjB;;MACPkB,UAAU,CAAA;IACZ;AAEA3B,UAAM,iBAAiBwB,WAAWF,GAAG;AACrC,WAAOE;EACT;;EAGA,MAAMI,iBACJrB,MACAC,SACsB;AACtB,UAAM,IAAIqB,MAAM,qBAAA;EAClB;;EAGA,MAAMC,iBAAiBN,YAAyBhB,SAA6C;AAE3F,WAAO;EACT;;EAGA,MAAMuB,OAAOxB,MAAmBC,SAAyC;AACvE,WAAOwB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMK,UAAU3B,MAAsBC,SAAyC;AAC7E,WAAOwB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMM,WAAW5B,MAAuBC,SAAyC;AAC/E,WAAOwB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMO,cAAc7B,MAAsBC,SAAyC;AACjF,WAAOwB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;AACF;;;ACjDO,IAAKQ,MAAAA,0BAAAA,MAAAA;;;;SAAAA;;AAKL,IAAKC,WAAAA,0BAAAA,WAAAA;;;;SAAAA;;AAML,IAAKC,UAAAA,0BAAAA,UAAAA;;;SAAAA;;AAKL,IAAMC,eAAe;EAAC;EAAS;EAAS;EAAS;EAAS;EAAU;EAAW;EAAa;EAAa;EAAc;;AACvH,IAAMC,eAAe;EAAC;EAAU;EAAkB;;","names":["importProvidedOrGeneratedKey","jwkDetermineUse","toJwk","AbstractIdentifierProvider","base64url","Debug","debug","Debug","JwkDIDProvider","AbstractIdentifierProvider","defaultKms","options","createIdentifier","args","context","key","importProvidedOrGeneratedKey","kms","alias","use","jwkDetermineUse","type","jwk","toJwk","publicKeyHex","noKidThumbprint","JSON","stringify","did","base64url","identifier","controllerKeyId","keys","services","updateIdentifier","Error","deleteIdentifier","addKey","Promise","reject","removeKey","addService","removeService","Key","KeyCurve","KeyType","SIG_KEY_ALGS","ENC_KEY_ALGS"]}
1
+ {"version":3,"sources":["../src/jwk-did-provider.ts","../src/types/jwk-provider-types.ts"],"sourcesContent":["import { importProvidedOrGeneratedKey, jwkDetermineUse, toJwk } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { DIDDocument, IAgentContext, IIdentifier, IKeyManager } from '@veramo/core'\nimport { AbstractIdentifierProvider } from '@veramo/did-manager'\nimport base64url from 'base64url'\nimport Debug from 'debug'\nimport { IAddKeyArgs, IAddServiceArgs, ICreateIdentifierArgs, IRemoveKeyArgs, IRequiredContext } from './types/jwk-provider-types'\nimport { JsonWebKey } from '@sphereon/ssi-types'\n\nconst PROVIDER_NAME = 'JWK DID Provider'\n\nconst debug = Debug('sphereon:did-provider-jwk')\n\n/**\n * {@link @veramo/did-manager#DIDManager} identifier provider for `did:ion` identifiers\n * @public\n */\nexport class JwkDIDProvider extends AbstractIdentifierProvider {\n private readonly defaultKms?: string\n\n constructor(options: { defaultKms?: string }) {\n super()\n this.defaultKms = options.defaultKms\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerCreate} */\n async createIdentifier(args: ICreateIdentifierArgs, context: IRequiredContext): Promise<Omit<IIdentifier, 'provider'>> {\n const key = await importProvidedOrGeneratedKey(\n {\n providerName: PROVIDER_NAME,\n // @ts-ignore\n kms: args.kms ?? this.defaultKms,\n alias: args.alias,\n options: args.options,\n },\n context,\n )\n\n const use = jwkDetermineUse(key.type, args?.options?.use)\n const jwk: JsonWebKey = toJwk(key.publicKeyHex, key.type, { use, key, noKidThumbprint: true })\n debug(JSON.stringify(jwk, null, 2))\n const did = `did:jwk:${base64url(JSON.stringify(jwk))}`\n const identifier: Omit<IIdentifier, 'provider'> = {\n did,\n controllerKeyId: `${did}#0`,\n keys: [key],\n services: [],\n }\n\n debug('Created DID: ', identifier.did)\n return identifier\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerUpdate} */\n async updateIdentifier?(\n args: { did: string; document: Partial<DIDDocument>; options?: { [x: string]: any } },\n context: IAgentContext<IKeyManager>,\n ): Promise<IIdentifier> {\n throw new Error('not implemented yet')\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerDelete} */\n async deleteIdentifier(identifier: IIdentifier, context: IRequiredContext): Promise<boolean> {\n // JWKs are entirely in memory constructs, without on chain support. Veramo can store them in the did store, but that is not the responsibility of the DID provider itself.\n return true\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerAddKey} */\n async addKey(args: IAddKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerRemoveKey} */\n async removeKey(args: IRemoveKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerAddService} */\n async addService(args: IAddServiceArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n\n /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerRemoveService} */\n async removeService(args: IRemoveKeyArgs, context: IRequiredContext): Promise<any> {\n return Promise.reject(Error('Not supported for DID JWKs'))\n }\n}\n","import { IKeyOpts } from '@sphereon/ssi-sdk-ext.key-utils'\nimport { IAgentContext, IIdentifier, IKey, IKeyManager, IService } from '@veramo/core'\n\nexport interface ICreateIdentifierArgs {\n kms?: string\n alias?: string\n options?: IKeyOpts\n}\n\nexport interface IAddKeyArgs {\n identifier: IIdentifier\n key: IKey\n options?: any\n}\n\nexport interface IRemoveKeyArgs {\n identifier: IIdentifier\n id: string\n options?: any\n}\n\nexport interface IRemoveKeyArgs {\n identifier: IIdentifier\n kid: string\n options?: any\n}\n\nexport interface IAddServiceArgs {\n identifier: IIdentifier\n service: IService\n options?: any\n}\n\nexport enum Key {\n Ed25519 = 'Ed25519',\n Secp256k1 = 'Secp256k1',\n Secp256r1 = 'Secp256r1',\n}\nexport enum KeyCurve {\n Secp256k1 = 'secp256k1',\n P_256 = 'P-256',\n Ed25519 = 'Ed25519',\n}\n\nexport enum KeyType {\n EC = 'EC',\n OKP = 'OKP',\n}\n\nexport const SIG_KEY_ALGS = ['ES256', 'ES384', 'ES512', 'EdDSA', 'ES256K', 'Ed25519', 'Secp256k1', 'Secp256r1', 'Bls12381G1', 'Bls12381G2']\nexport const ENC_KEY_ALGS = ['X25519', 'ECDH_ES_A256KW', 'RSA_OAEP_256']\n\nexport type IRequiredContext = IAgentContext<IKeyManager>\n"],"mappings":";;;;AAAA,SAASA,8BAA8BC,iBAAiBC,aAAa;AAErE,SAASC,kCAAkC;AAC3C,OAAOC,eAAe;AACtB,OAAOC,WAAW;AAIlB,IAAMC,gBAAgB;AAEtB,IAAMC,QAAQC,MAAM,2BAAA;AAMb,IAAMC,iBAAN,cAA6BC,2BAAAA;EAhBpC,OAgBoCA;;;EACjBC;EAEjB,YAAYC,SAAkC;AAC5C,UAAK;AACL,SAAKD,aAAaC,QAAQD;EAC5B;;EAGA,MAAME,iBAAiBC,MAA6BC,SAAmE;AACrH,UAAMC,MAAM,MAAMC,6BAChB;MACEC,cAAcZ;;MAEda,KAAKL,KAAKK,OAAO,KAAKR;MACtBS,OAAON,KAAKM;MACZR,SAASE,KAAKF;IAChB,GACAG,OAAAA;AAGF,UAAMM,MAAMC,gBAAgBN,IAAIO,MAAMT,MAAMF,SAASS,GAAAA;AACrD,UAAMG,MAAkBC,MAAMT,IAAIU,cAAcV,IAAIO,MAAM;MAAEF;MAAKL;MAAKW,iBAAiB;IAAK,CAAA;AAC5FpB,UAAMqB,KAAKC,UAAUL,KAAK,MAAM,CAAA,CAAA;AAChC,UAAMM,MAAM,WAAWC,UAAUH,KAAKC,UAAUL,GAAAA,CAAAA,CAAAA;AAChD,UAAMQ,aAA4C;MAChDF;MACAG,iBAAiB,GAAGH,GAAAA;MACpBI,MAAM;QAAClB;;MACPmB,UAAU,CAAA;IACZ;AAEA5B,UAAM,iBAAiByB,WAAWF,GAAG;AACrC,WAAOE;EACT;;EAGA,MAAMI,iBACJtB,MACAC,SACsB;AACtB,UAAM,IAAIsB,MAAM,qBAAA;EAClB;;EAGA,MAAMC,iBAAiBN,YAAyBjB,SAA6C;AAE3F,WAAO;EACT;;EAGA,MAAMwB,OAAOzB,MAAmBC,SAAyC;AACvE,WAAOyB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMK,UAAU5B,MAAsBC,SAAyC;AAC7E,WAAOyB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMM,WAAW7B,MAAuBC,SAAyC;AAC/E,WAAOyB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;;EAGA,MAAMO,cAAc9B,MAAsBC,SAAyC;AACjF,WAAOyB,QAAQC,OAAOJ,MAAM,4BAAA,CAAA;EAC9B;AACF;;;ACpDO,IAAKQ,MAAAA,0BAAAA,MAAAA;;;;SAAAA;;AAKL,IAAKC,WAAAA,0BAAAA,WAAAA;;;;SAAAA;;AAML,IAAKC,UAAAA,0BAAAA,UAAAA;;;SAAAA;;AAKL,IAAMC,eAAe;EAAC;EAAS;EAAS;EAAS;EAAS;EAAU;EAAW;EAAa;EAAa;EAAc;;AACvH,IAAMC,eAAe;EAAC;EAAU;EAAkB;;","names":["importProvidedOrGeneratedKey","jwkDetermineUse","toJwk","AbstractIdentifierProvider","base64url","Debug","PROVIDER_NAME","debug","Debug","JwkDIDProvider","AbstractIdentifierProvider","defaultKms","options","createIdentifier","args","context","key","importProvidedOrGeneratedKey","providerName","kms","alias","use","jwkDetermineUse","type","jwk","toJwk","publicKeyHex","noKidThumbprint","JSON","stringify","did","base64url","identifier","controllerKeyId","keys","services","updateIdentifier","Error","deleteIdentifier","addKey","Promise","reject","removeKey","addService","removeService","Key","KeyCurve","KeyType","SIG_KEY_ALGS","ENC_KEY_ALGS"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk-ext.did-provider-jwk",
3
3
  "description": "Sphereon SSI-SDK plugin for management of did:key identifiers.",
4
- "version": "0.34.1-next.91+3c949810",
4
+ "version": "0.36.0",
5
5
  "source": "./src/index.ts",
6
6
  "type": "module",
7
7
  "main": "./dist/index.cjs",
@@ -23,9 +23,9 @@
23
23
  },
24
24
  "dependencies": {
25
25
  "@ethersproject/random": "^5.7.0",
26
- "@sphereon/ssi-sdk-ext.did-utils": "0.34.1-next.91+3c949810",
27
- "@sphereon/ssi-sdk-ext.key-utils": "0.34.1-next.91+3c949810",
28
- "@sphereon/ssi-types": "0.34.1-next.91+3c949810",
26
+ "@sphereon/ssi-sdk-ext.did-utils": "0.36.0",
27
+ "@sphereon/ssi-sdk-ext.key-utils": "0.36.0",
28
+ "@sphereon/ssi-types": "0.36.0",
29
29
  "@stablelib/ed25519": "^1.0.3",
30
30
  "@veramo/core": "4.2.0",
31
31
  "@veramo/did-manager": "4.2.0",
@@ -36,8 +36,8 @@
36
36
  },
37
37
  "devDependencies": {
38
38
  "@or13/did-jwk": "^0.0.4",
39
- "@sphereon/ssi-sdk-ext.key-manager": "0.34.1-next.91+3c949810",
40
- "@sphereon/ssi-sdk-ext.kms-local": "0.34.1-next.91+3c949810",
39
+ "@sphereon/ssi-sdk-ext.key-manager": "0.36.0",
40
+ "@sphereon/ssi-sdk-ext.kms-local": "0.36.0",
41
41
  "@veramo/did-resolver": "4.2.0",
42
42
  "@veramo/key-manager": "4.2.0",
43
43
  "jose": "^5.10.0",
@@ -61,5 +61,5 @@
61
61
  "DID",
62
62
  "Veramo"
63
63
  ],
64
- "gitHead": "3c9498100ca07dfc2ba7979e7347fb9b19c47d18"
64
+ "gitHead": "f713d3a83948ef69aaa7d435700b16d5655ac863"
65
65
  }
@@ -6,6 +6,8 @@ import Debug from 'debug'
6
6
  import { IAddKeyArgs, IAddServiceArgs, ICreateIdentifierArgs, IRemoveKeyArgs, IRequiredContext } from './types/jwk-provider-types'
7
7
  import { JsonWebKey } from '@sphereon/ssi-types'
8
8
 
9
+ const PROVIDER_NAME = 'JWK DID Provider'
10
+
9
11
  const debug = Debug('sphereon:did-provider-jwk')
10
12
 
11
13
  /**
@@ -24,12 +26,13 @@ export class JwkDIDProvider extends AbstractIdentifierProvider {
24
26
  async createIdentifier(args: ICreateIdentifierArgs, context: IRequiredContext): Promise<Omit<IIdentifier, 'provider'>> {
25
27
  const key = await importProvidedOrGeneratedKey(
26
28
  {
29
+ providerName: PROVIDER_NAME,
27
30
  // @ts-ignore
28
31
  kms: args.kms ?? this.defaultKms,
29
32
  alias: args.alias,
30
33
  options: args.options,
31
34
  },
32
- context
35
+ context,
33
36
  )
34
37
 
35
38
  const use = jwkDetermineUse(key.type, args?.options?.use)
@@ -50,7 +53,7 @@ export class JwkDIDProvider extends AbstractIdentifierProvider {
50
53
  /** {@inheritDoc @veramo/veramo-core#IDIDManager.didManagerUpdate} */
51
54
  async updateIdentifier?(
52
55
  args: { did: string; document: Partial<DIDDocument>; options?: { [x: string]: any } },
53
- context: IAgentContext<IKeyManager>
56
+ context: IAgentContext<IKeyManager>,
54
57
  ): Promise<IIdentifier> {
55
58
  throw new Error('not implemented yet')
56
59
  }