@sphereon/ssi-sdk-ext.did-provider-jwk 0.34.1-fix.80 → 0.34.1-next.299

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,
@@ -109,23 +111,23 @@ var JwkDIDProvider = class extends import_did_manager.AbstractIdentifierProvider
109
111
  };
110
112
 
111
113
  // src/types/jwk-provider-types.ts
112
- var Key = /* @__PURE__ */ function(Key2) {
114
+ var Key = /* @__PURE__ */ (function(Key2) {
113
115
  Key2["Ed25519"] = "Ed25519";
114
116
  Key2["Secp256k1"] = "Secp256k1";
115
117
  Key2["Secp256r1"] = "Secp256r1";
116
118
  return Key2;
117
- }({});
118
- var KeyCurve = /* @__PURE__ */ function(KeyCurve2) {
119
+ })({});
120
+ var KeyCurve = /* @__PURE__ */ (function(KeyCurve2) {
119
121
  KeyCurve2["Secp256k1"] = "secp256k1";
120
122
  KeyCurve2["P_256"] = "P-256";
121
123
  KeyCurve2["Ed25519"] = "Ed25519";
122
124
  return KeyCurve2;
123
- }({});
124
- var KeyType = /* @__PURE__ */ function(KeyType2) {
125
+ })({});
126
+ var KeyType = /* @__PURE__ */ (function(KeyType2) {
125
127
  KeyType2["EC"] = "EC";
126
128
  KeyType2["OKP"] = "OKP";
127
129
  return KeyType2;
128
- }({});
130
+ })({});
129
131
  var SIG_KEY_ALGS = [
130
132
  "ES256",
131
133
  "ES384",
@@ -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;EAEjBC,YAAYC,SAAkC;AAC5C,UAAK;AACL,SAAKF,aAAaE,QAAQF;EAC5B;;EAGA,MAAMG,iBAAiBC,MAA6BC,SAAmE;AACrH,UAAMC,MAAM,UAAMC,iDAChB;;MAEEC,KAAKJ,KAAKI,OAAO,KAAKR;MACtBS,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;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;QAACjB;;MACPkB,UAAU,CAAA;IACZ;AAEA5B,UAAM,iBAAiByB,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,yBAAAA,MAAAA;;;;SAAAA;;AAKL,IAAKC,WAAAA,yBAAAA,WAAAA;;;;SAAAA;;AAML,IAAKC,UAAAA,yBAAAA,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","constructor","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,
@@ -70,23 +72,23 @@ var JwkDIDProvider = class extends AbstractIdentifierProvider {
70
72
  };
71
73
 
72
74
  // src/types/jwk-provider-types.ts
73
- var Key = /* @__PURE__ */ function(Key2) {
75
+ var Key = /* @__PURE__ */ (function(Key2) {
74
76
  Key2["Ed25519"] = "Ed25519";
75
77
  Key2["Secp256k1"] = "Secp256k1";
76
78
  Key2["Secp256r1"] = "Secp256r1";
77
79
  return Key2;
78
- }({});
79
- var KeyCurve = /* @__PURE__ */ function(KeyCurve2) {
80
+ })({});
81
+ var KeyCurve = /* @__PURE__ */ (function(KeyCurve2) {
80
82
  KeyCurve2["Secp256k1"] = "secp256k1";
81
83
  KeyCurve2["P_256"] = "P-256";
82
84
  KeyCurve2["Ed25519"] = "Ed25519";
83
85
  return KeyCurve2;
84
- }({});
85
- var KeyType = /* @__PURE__ */ function(KeyType2) {
86
+ })({});
87
+ var KeyType = /* @__PURE__ */ (function(KeyType2) {
86
88
  KeyType2["EC"] = "EC";
87
89
  KeyType2["OKP"] = "OKP";
88
90
  return KeyType2;
89
- }({});
91
+ })({});
90
92
  var SIG_KEY_ALGS = [
91
93
  "ES256",
92
94
  "ES384",
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;EAEjBC,YAAYC,SAAkC;AAC5C,UAAK;AACL,SAAKF,aAAaE,QAAQF;EAC5B;;EAGA,MAAMG,iBAAiBC,MAA6BC,SAAmE;AACrH,UAAMC,MAAM,MAAMC,6BAChB;;MAEEC,KAAKJ,KAAKI,OAAO,KAAKR;MACtBS,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;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;QAACjB;;MACPkB,UAAU,CAAA;IACZ;AAEA5B,UAAM,iBAAiByB,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,yBAAAA,MAAAA;;;;SAAAA;;AAKL,IAAKC,WAAAA,yBAAAA,WAAAA;;;;SAAAA;;AAML,IAAKC,UAAAA,yBAAAA,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","constructor","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-fix.80+f71b3901",
4
+ "version": "0.34.1-next.299+9e9f5a50",
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-fix.80+f71b3901",
27
- "@sphereon/ssi-sdk-ext.key-utils": "0.34.1-fix.80+f71b3901",
28
- "@sphereon/ssi-types": "0.34.1-fix.80+f71b3901",
26
+ "@sphereon/ssi-sdk-ext.did-utils": "0.34.1-next.299+9e9f5a50",
27
+ "@sphereon/ssi-sdk-ext.key-utils": "0.34.1-next.299+9e9f5a50",
28
+ "@sphereon/ssi-types": "0.34.1-next.299+9e9f5a50",
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-fix.80+f71b3901",
40
- "@sphereon/ssi-sdk-ext.kms-local": "0.34.1-fix.80+f71b3901",
39
+ "@sphereon/ssi-sdk-ext.key-manager": "0.34.1-next.299+9e9f5a50",
40
+ "@sphereon/ssi-sdk-ext.kms-local": "0.34.1-next.299+9e9f5a50",
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": "f71b39017a0bd9ac33fab56d2d61287d8d5c14f4"
64
+ "gitHead": "9e9f5a50ead9373a078cb5291cbc4fb1e7865dc2"
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
  }